07 2018 档案
摘要:[题目链接] http://poj.org/problem?id=3694 [算法] 首先,我们用tarjan算法求出所有的边双联通分量,然后,将这张图缩点 如果添加的边(x,y)在同一个双联通分量中,答案不变,否则,给belong[x]-belong[y]的路径上的边作标记,可以用并查集加速这个过
阅读全文
摘要:[题目链接] http://poj.org/problem?id=1745 [算法] DP [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1123 [算法] 首先,如果一个点不是割点,那么,去掉该点后不连通的有序点对就为 : 2 * (n - 1) 否则,去掉这个点后,这个图就被分为了 : 1. 这个点本身 2. 这个点在搜
阅读全文
摘要:[题目链接] http://poj.org/problem?id=3169 [算法] 差分约束系统 [代码]
阅读全文
摘要:[题目链接] http://codeforces.com/problemset/problem/1013/B [算法] 不难发现,答案只有0,1,2,-1,共4种取值 分类讨论即可,计算时可以使用STL-map [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=3046 [算法] DP,注意用滚动数组优化空间[代码]
阅读全文
摘要:[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=6318 [算法] 线段树 / 树状数组 [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=3621 [算法] 01分数规划(最优比率环) [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1791 [算法] 不难看出,要求的是这个基环树森林中每棵基环树的直径之和 [代码]
阅读全文
摘要:[题目链接] https://www.spoj.com/problems/ADATRIP/ [算法] 直接使用dijkstra堆优化算法即可 [代码]
阅读全文
摘要:[题目链接] https://www.luogu.org/problemnew/show/P1084 [算法] 细心观察发现 : 此题的答案具有单调性,也就是说,如果p小时能控制疫情,那么q小时也能控制疫情(q > p),因此我们可以二分答案,这是此题的突破口 问题就转化为了检验”Mid小时是否可以
阅读全文
摘要:[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=6315 [算法] 线段树 [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3363 [算法] 树的直径 [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1832 [算法] 最近公共祖先 [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=3417 [算法] 树上差分 [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1999 [算法] 树的直径 + 单调队列 [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1912 [算法] 树的直径 [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=2728 [算法] 0/1分数规划 + 最小生成树[代码] 在本题中,prim算法的时间复杂度优于kruskal算法,且实现较为容易,因此,笔者程序中使用的是prim算法
阅读全文
摘要:[题目链接] http://poj.org/problem?id=1639 [算法] 首先,我们可以用深度优先遍历求出1号节点去除后有几个联通块 设共有T个联通块,若T > K则无解,否则 : 求出这些联通块的最小生成树,得到一棵最小T度生成树,我们尝试改动(K - T)条边,使得答案变得更小,具体
阅读全文
摘要:[题目链接] http://poj.org/problem?id=1094 [算法] floyed传递闭包 [代码]
阅读全文
摘要:[题目链接] https://www.luogu.org/problemnew/show/P1073 [算法] 首先,我们知道,如果进行贸易,一定是选择某个节点到终点路径上商品价格的最大值 - 起点到该节点路径上商品价格的最小值 那么算法就很明确了 : 建一张正向图和反向图,分别用spfa求出起点/
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1579 [算法] dist[u][k]表示当前在点u,升级了k条道路,最短路径的长度 dijkstra即可 [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2100 [算法] Answer = min{ dist(PB,PA1) + dist(PA1,PA2) , dist(PB,PA2) + dist(PA1,PA2) } (其中,dist
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1260 [算法] 区间DP [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1090 [算法] 区间DP [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=3252 [算法] 数位DP f[i][j][k]表示在二进制表示下第1位为i,共有j位,其中共有k位为0 实现时需注意细节! [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1833 [算法] 数位DP [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=2282 [算法] 数位DP [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=1191 [算法] f[i][j][k][l][m] 表示进行了i次切割,当前矩形的左上角左标为(j,k),右下角坐标为(k,l) , sigma( (x - x') ^ 2 ) 的最小值 [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=3345 [算法] 树形背包 [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=2785 [算法] 中途相遇法 [代码]
阅读全文
摘要:[题目链接] http://uoj.ac/problem/334 [算法] 仔细观察依次下达的两条指令,我们发现,其实需要做的就是 : 1. 将最后一列的第x个数弹出,插入到第x行的末尾 2. 将第x行的第y个数弹出,插入到最后一行最后一列 不妨建(n + 1)棵平衡树,维护n行和最后一列,但是这样
阅读全文
摘要:[题目链接] http://uoj.ac/problem/333 [算法] 状压DP f[i][j][S]表示j的深度为i,要从第j个宝藏屋开始挖,挖出集合S的最小代价 有状态转移方程 : f[i][j][S] = min{ (i + 1) * dist(j,k) + f[i + 1][k][S2
阅读全文
摘要:[题目链接] http://uoj.ac/problem/331 [算法] 首先,我们预处理出每个点到第N个点的最短路,这等价于在反图上求第N个点到其余点的最短路 然后,我们用f[u][k]表示从第u个点到第n个点,至多走长度为dist(u,n) + k的路径有多少种走法 记忆化搜索即可,注意判断是
阅读全文
摘要:[题目链接] http://uoj.ac/problem/332 [算法] 直接搜索即可 注意使用long long [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3387 [算法] f[i][0]表示从第i个栅栏的左端点走到原点的最少移动步数 f[i][1]表示从第i个栅栏的右端点走到原点的最少移动步数 我们可以用线段树优化转移 [代码]
阅读全文
摘要:[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=4261 [算法] 首先,有一个结论 : | a[1] - k | + | a[2] - k | + ... + | a[n] - k | 当k取(a[1],a[2], ... , a[n])的中位数时
阅读全文
摘要:[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=2870 [算法] dp + 单调栈 [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1855 [算法] 单调队列优化动态规划 [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2337 [算法] 直接进行计算显然是不可做的,我们考虑按位计算答案 从低位向高位枚举,此时问题就转化为了 : 在一个联通无向图中,从1出发走到n,路径异或和为1的概率是多少 用f[i]表
阅读全文
摘要:[题目链接] http://poj.org/problem?id=1463 [算法] 树形DP [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1109 [算法] DP [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=1609 [算法] 将坐标按x为第一关键字,y为第二关键字排序 求最长上升子序列即可 [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=1722 [算法] DP [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=1934 [算法] 先用dp求出LCS,然后搜索即可,注意加上一些剪枝 [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=1952 [算法] DP [代码]
阅读全文
摘要:[题目链接] https://www.luogu.org/problemnew/show/P1854v [算法] f[i][j]表示放了前i束花,第i束花放在第j个花瓶中,所能获得的最大美学值 由于要输出方案,我们不妨对于每个状态记一个pre,最后沿着pre数组反推出方案即可 [代码]
阅读全文
摘要:[题目链接] https://www.luogu.org/problemnew/show/P1541 [算法] f[x][y][z][t]表示现在剩下x张1号卡片,y张2号卡片,z张3号卡片,t张4号卡片 我们可以通过状态算出现在所在的位置 转移十分显然 [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1799 [算法] 数位DP [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=3208 [算法] 数位DP [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=1037 [算法] DP [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=1737 [算法] 首先,问题可以转化为 : N个顶点的无向图总数 - N个顶点不连通的无向图总数 显然,N个顶点的无向图总数为2^(N(N - 1) / 2)个 那么,N个顶点不连通的无向图总数怎么求呢? 既然不连通,说明这个无向图
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1024 [算法] 直接DFS,即可 [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1082 [算法] 首先二分“最多得到的符合条件的木板数”,检验时可以使用DFS,但是,我们需要进行一下两点剪枝 1. 如果当前木板的长度等于后一块木板的长度,那么下一次搜索只需从这一次进
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1097 [算法] 首先,用Dijkstra算法求出2-k+1到每个点的最短路 然后,我们用f[S][i]表示目前停留城市集合为S,现在在城市i,最短的路径 状压DP即可 [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1072 [算法] 状压DP [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1076 [算法] f[i][S]表示当前第i次抛出宝物,目前集合为S,所能获得的最高分值 dp即可 [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1079 [算法] f[c1][c2][c3][c4][c5][pre]表示有c1种颜色可以涂1个木块,c2中颜色可以涂2个木块,.....,上一次的颜色可以涂pre个木块 记忆化搜索即可
阅读全文
摘要:[题目链接] http://codeforces.com/contest/559/problem/C [算法] f[i]表示经过(Xi,Yi)且不经过其它黑色格子的路径总数 那么有 : f[i] = C(Xi + Yi - 2,Xi - 1) - sigma( f[j] * C(Xi - Xj +
阅读全文
摘要:[题目链接] http://poj.org/problem?id=3017 [算法] multiset + dp + 单调队列 [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=1821 [算法] 单调队列优化DP [代码]
阅读全文
摘要:[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5542 [算法] 树状数组优化DP [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=3171 [算法] 线段树 + dp [代码]
阅读全文
摘要:[题目链接] https://www.luogu.org/problemnew/show/P1081 [算法] STL-set + 倍增 + DP [代码]
阅读全文
摘要:[题目链接] http://codeforces.com/contest/24/problem/D [算法] 用f[i][j]表示从(i,j)走到第n行的某个位置的期望步数 那么有 : 当机器人在第1列时 : f[i][1] = 1 / 3 * (f[i][1] + f[i][2]+ f[i+1][
阅读全文
摘要:[题目链接] http://poj.org/problem?id=2228 [算法] 首先考虑第一天的N个小时和第二天的第一个小时不相连这个简化的问题 用f[i][j][1]表示前i个小时中j个小时在睡觉且第i个小时在休息,f[i][j][0]表示前i个小时中j个小时在睡觉且第i个小时不在休息,所能
阅读全文
摘要:[题目链接] http://poj.org/problem?id=3585 [算法] 树形DP——二次扫描与换根法 [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=1179 [算法] 区间DP [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3784 [算法] 首先简单介绍一下点分治序列 : 点分治序列和DFS序列,BFS序列等类似,是将点分治过程中每次的分治中心连在一起形成的序列,显然,点分治序列的长度是(N log N)的
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1316 [算法] 点分治 由于边权较大,笔者在计算时使用了STL-set 注意当询问为0时,要输出"Yes" [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=1742 [算法] 动态规划 + 贪心 [代码]
阅读全文
摘要:[题目链接] https://www.luogu.org/problemnew/show/P1006 [算法] 设现在两条路径的前i步已确定,第一条路径的最后一步在(x1,y1),第二条路径的最后一步在(x2,y2),则有 : x1 + y1 = x2 + y2 = i + 2 因此,当i,x1,x
阅读全文
摘要:[题目链接] http://poj.org/problem?id=3666 [算法] 离散化 + dp [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=2279 [算法] 杨氏矩阵与勾长公式 [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2006 [算法] Sprase Table + 堆 [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3781 [算法] 莫队算法 [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=1417 [算法] 首先,我们发现 : 如果A说B是好人,那么A和B是同一类人,否则A和B不是同一类人 利用这个性质,用并查集维护这些人之间的关系 问题就转化成了有Cnt个集合,每个集合里包含两类人,我们在每个集合里选出一类人,使得最
阅读全文
摘要:[题目链接] http://poj.org/problem?id=2912 [算法] 并查集 [代码]
阅读全文
摘要:[题目链接] https://www.luogu.org/problemnew/show/P1525 [算法] 贪心地思考这个问题,我们优先考虑“怒气值”大的罪犯,尝试不将他们分在同一监狱,如果必须分在同一间监狱,那么,就不需考虑其余的罪犯了 显然,并查集是可以完成这个任务的 [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3365 [算法] 点分治 [代码]
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=2821 【算法】 如果不强制在线,显然莫队是可以解决此题的,那么,强制在线怎么办呢? 分块 将这个序列分成sqrt(n)段(sqrt表示开方),预处理每段每个数出现的次数与该段“多少数出
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=2599 【算法】 点分治 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=2828 【算法】 离线用线段树维护序列即可 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1208 【算法】 建两棵平衡树维护领养者和宠物的特点值,这两棵平衡树支持 插入删除,查询前驱和后继 笔者的平衡树选用的是Treap,当然,Splay,Set等数据结构也是可以完成这个任务
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=2152 【算法】 点分治 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=1741 【算法】 点分治 要求距离不超过k的点对个数,不妨将路径分成两类 : 1. 经过根节点 2. 不经过根节点 考虑第1类路径,不妨从根节点进行一次深度优先遍历,求出每个点与根节点的距离,将距离排序,然后用两个指针扫描一遍即可,
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=2453 【算法】 带修改的莫队算法 当块的大小为N^(2/3)时,时间复杂度为 : O(n^(5/3)) 但本题,当块的大小为sqrt(N)时,能够达到更优的复杂度 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=2120 【算法】 带修改的莫队算法 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1878 【算法】 显然,在线算法是不可做的,考虑离线算法 笔者的做法是莫队算法,时间复杂度 : O(nsqrt(n))(sqrt表示开方) 但是,树状数组的效率更高,下面讲一讲这种高效的
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=2038 【算法】 莫队算法 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=2724 【算法】 分块算法在线维护区间众数 分块算法的精髓就在于 : 大段维护,局部朴素 这一题,我们可以将序列分成T段,那么每一段的长度就是(N/T) 对于每个询问,设l处于第p段,r
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=2482 【算法】 线段树 + 扫描线 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=2182 【算法】 树状数组 + 二分 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=1082 【算法】 对于每种状态,要么必胜,要么必败 记忆化搜索即可 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=2352 【算法】 树状数组 注意x坐标为0的情况 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=2481 【算法】 树状数组 注意特判两头牛的s,e值相同 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=1 【算法】 并查集 【代码】
阅读全文
摘要:【题目链接】 https://www.luogu.org/problemnew/show/P1196 【算法】 并查集 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=4195 【算法】 并查集 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=1704 【算法】 阶梯博弈 【代码】
阅读全文
摘要:【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=2176 【算法】 Nim博弈 当石子数异或和不为0时,先手必胜,否则先手必败 设石子异或和为S 如果S xor ai <= ai,那么,第一步就可以从第i堆石子中取走(S xor ai)个石子 【代码
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=4517 【算法】 有m个数在原来的位置上,说明有(n-m)个数不再原来的位置上 那么,我们可以选出(n-m)个数,使这(n-m)个数都不在原来的位置上,再让剩下的m个数都在原来的位置上
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=3904 【算法】 问题可以转化为求总的四元组个数 - 公约数不为1的四元组个数 总的四元组个数为C(n,4),公约数不为1的四元组个数可以用容斥原理求 【代码】
阅读全文
摘要:【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=5015 【算法】 矩阵乘法 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=2463 【算法】 n为偶数时必胜,否则必败 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=2311 【算法】 博弈论——SG函数 【代码】
阅读全文
摘要:【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=1846 【算法】 巴什博弈 若有(m+1)个石子,显然先手不能直接取完,后手必胜 因此,我们可以把石子总数表示为 : n = k(m+1) + r 若r不为0,则先手取走r个,若后手取s个,先手取(m
阅读全文
摘要:【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=1847 【算法】 我们知道,每一种状态,要么必胜,要么必败 记忆化搜索即可 【代码】
阅读全文
摘要:【题目链接】 http://codeforces.com/contest/451/problem/D 【算法】 合并后的字符串一定是形如"ababa","babab",ab交替出现的字符串 那么,判断一段是否为回文,只需判断首尾字符是否相等即可 【代码】
阅读全文
摘要:【题目链接】 http://codeforces.com/contest/451/problem/B 【算法】 模拟 在序列中找到一段单调递增的子序列,将这段序列反转,然后判断序列是否变得单调递增,即可 【代码】
阅读全文
摘要:【题目链接】 http://codeforces.com/contest/451/problem/A 【算法】 若n和m中的最小值是奇数,则先手胜,否则后手胜 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=2976 【算法】 0/1分数规划 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=3744 【算法】 概率DP + 矩阵乘法 【代码】
阅读全文
摘要:【题目链接】 http://codeforces.com/contest/148/problem/D 【算法】 概率DP f[w][b]表示还剩w只白老鼠,b只黑老鼠,公主胜利的概率,那么 : 1. 公主抓到白老鼠,概率为w/(w+b) 2. 公主抓到黑老鼠,那么龙也抓到黑老鼠,如果跑出来的老鼠是白
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=3071 【算法】 概率DP f[i][j]表示第j支队伍进入第i轮的概率,转移比较显然 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=2096 【算法】 概率DP 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1257 【算法】 k mod i = k - [k / i] * i 所以 (k mod 1) + (k mod 2) + ... + (k mod n) = nk - sigma([k
阅读全文
摘要:【题目链接】 http://codeforces.com/contest/451/problem/E 【算法】 容斥原理 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1951 【算法】 欧拉定理+中国剩余定理 + lucas定理 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=2982 【算法】 lucas定理 【代码】
阅读全文
摘要:【题目链接】 https://www.luogu.org/problemnew/show/P1313 【算法】 二项式定理 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=1222 【算法】 列出异或方程组,用高斯消元求解即可 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=1830 【算法】 列出异或方程组,用高斯消元求解 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1013 【算法】 高斯消元 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=2242 【算法】 第一问用快速幂解决 第二问用exgcd解决 第三问用BSGS算法解决 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=2417 【算法】 Baby-Step,Giant-Step算法 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=2891 【算法】 exgcd 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=3696 【算法】 设需要x个8 那么,这个数可以表示为 : 8(10^x - 1) / 9, 由题, L | 8(10^x - 1) / 9 令d = gcd(L,8),则 : L | 8(10^x - 1) / 9 9L | 8
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=2190 【算法】 同POJ3090 值得注意的是此题数据规模较大,建议使用用线性筛筛出欧拉函数 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=3090 【算法】 通过观察发现,在这个平面直角坐标系中,除了(1,1),(1,0)和(0,1),所有可见点的横纵坐标互质 那么,问题就转化为了求 2 * (phi(1) + phi(2) + ... + phi(n)) + 3 预处
阅读全文
摘要:【题目链接】 https://www.luogu.org/problemnew/show/P1072 【算法】 x是b1的约数 筛出b1的约数,判断是否符合条件即可 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=2351 【算法】 哈希 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=4007 【算法】 IDA* 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=2286 【算法】 IDA* 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=1084 【算法】 迭代加深 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=1167 【算法】 深度优先搜索 + 迭代加深 【代码】
阅读全文
摘要:【题目链接】 https://www.luogu.org/problemnew/show/P1032 【算法】 广度优先搜索 用stl库里的map来判重 【代码】
阅读全文
摘要:【题目链接】 https://www.luogu.org/problemnew/show/P1092 【算法】 搜索 + 剪枝 直接搜索显然会超时,考虑剪枝 1 : 优化搜索顺序 2 : 假设我们已经确定了一组(Ai,Bi,Ci),那么,如果(Ai + Bi) mod n 和(Ai + Bi + 1
阅读全文
摘要:【题目链接】 https://www.luogu.org/problemnew/show/P1312 【算法】 深度优先搜索 【代码】
阅读全文
摘要:【题目链接】 https://www.luogu.org/problemnew/show/P1074 【算法】 搜索 + 剪枝 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=2044 【算法】 广度优先搜索 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=1703 【算法】 并查集 + 拆点 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1085 【算法】 IDA* 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1102 【算法】 广度优先搜索 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=3700 【算法】 对于每一枚导弹,有4种决策 : 1.新建一套递增的系统拦截它 2.新建一套递减的系统拦截它 3.在已经建好的递增拦截系统中任选一个符合条件的拦截 4.在已经建好的递减拦截系统中任选一个符合条件的拦截 如果直接搜索,
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1054 【算法】 广度优先搜索 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=3460 【算法】 IDA* 注意特判答案为0的情况 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1598 【算法】 A*求k短路 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1975 【算法】 A*求k短路 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=2449 【算法】 A*(启发式搜索) 首先,求第k短路可以用优先队列BFS实现,当T第k次入队时,就求得了第k短路,但是,这种做法的复杂度太高 考虑使用A*算法,每个点的估价函数就是这个点到T的最短路,不妨将所有的边反过来求最短路,
阅读全文
摘要:【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=3085 【算法】 双向BFS 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=3635 【算法】 优先队列BFS 实现类似于堆优化dijkstra 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=2230 【算法】 欧拉回路 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=1475 【算法】 双重BFS 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=3942 【算法】 栈 + KMP 【代码】
阅读全文
摘要:【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6162 【算法】 离线树剖 我们知道,u到v路径上权值为[A,B]的数的和 = u到v路径上权值小于等于B的数的和 - u到v路径上权值小于等于(A-1)的数的和 不妨将询问拆开,离线计算答案即可 【
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=2252 【算法】 将所有是”1“的点入队,然后广度优先搜索,即可 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=3322 【算法】 广度优先搜索 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=2248 【算法】 搜索剪枝 剪枝1 : 优化搜索顺序,从大到小枚举 剪枝2 : Ai + Aj可能相等,只需搜一次即可 剪枝3 : 通过观察发现 : m <= 10,可以用迭代加深搜索 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=3076 【算法】 将数独问题转化为精确覆盖问题,用Dancing Links求解 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=3074 【算法】 将数独问题转化为精确覆盖问题,用Dancing Links求解 转化方法如下 : 我们知道,在一个数独中 : 1.每个格子填且只填一个数 2.每一行填1-9这九个数 3.每一列填1-9这九个数 4.每个格子填1-9
阅读全文
摘要:【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=3663 【算法】 先建图,然后用Dancing Links求解精确覆盖,即可 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=3740 【算法】 Dancing Links算法解精确覆盖问题 详见这篇文章 : https://www.cnblogs.com/grenet/p/3145800.html 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=1011 【算法】 深搜剪枝 首先我们枚举木棍的长度i,那么就有s/i根木棍,其中s为木棍长度的总和,朴素的做法就是对每种长度进行搜索,然而这样是会超时的,考虑优化 : 优化1 : 优化搜索顺序,将这些木棍的长度从大到小排序,搜索时按
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=2676 【算法】 深度优先搜索 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1212 【算法】 字典树 + dp 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1230 【算法】 线段树 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1370 【算法】 并查集 + 拆点 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1590 【算法】 字典树 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=2288 【算法】 先将这个序列的正负数合并起来,变成一个正负交替的序列 如果新序列的正数个数小于等于M,那么直接输出正数的和即可 否则,我们可以将某些正数和负数合并起来,或者不要某些正数
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=3630 【算法】 字典树 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1398 【算法】 最小表示法 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=1964 【算法】 记f[i]表示第i行最多向上延伸的行数 然后,对于每一行,我们用单调栈计算出这一行向上延伸的最大矩形面积,取最大值,即可 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=3670 【算法】 KMP 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=4198 【算法】 不难发现,题目中所说的编码方式就是哈夫曼编码 注意合并时优先合并深度小的 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1150 【算法】 首先,有一个很显然的结论 : 如果要使距离和最小,必须选择相邻的办公楼配对 问题就转化为了 : 有一个包含(n-1)个数的序列,在这(n-1)个数中选k个,相邻的数不能
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=2442 【算法】 堆 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=1456 【算法】 贪心 + 堆 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=3764 【算法】 首先,我们用Si表示从节点i到根的路径边权异或和 那么,根据异或的性质,我们知道节点u和节点v路径上的边权异或和就是Sx xor Sy 问题就转化为了 : 在若干个数中,找到两个数异或的最大值,可以用Trie树加速
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1572 【算法】 贪心 先将这些工作按截至时间排序 建立一个小根堆,当决策是否完成一项工作时,若堆的大小小于该工作的截止时间,则将这项工作所获得的利润放入堆,否则,将这项工作的利润与堆顶
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1601 【算法】 最小生成树 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1602 【算法】 倍增求LCA 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=3631 【算法】 树上差分 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=3790 【算法】 manacher + 贪心 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=2565 【算法】 Manacher 【代码】
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=2160 【算法】 先简化题意 : 给定一个字符串,求最长的k个奇回文子串长度的乘积 先运行Manacher算法,对于每个位置i,我们知道以i为中心的回文串的最长半径为pi,那么i这个位置
阅读全文

浙公网安备 33010602011771号