随笔分类 - 最小生成树
摘要:[题目链接] https://www.luogu.org/problemnew/show/P4899 [算法] 建出原图的最小/最大生成树的kruskal重构树然后二维数点 时间复杂度 : O((N+Q)logN) [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3551 [算法] 建出此图的kruskal重构树 用线段树合并维护每个联通块的第k大点权 这样就可以在线回答询问了 时间复杂度 : O((N + Q)log N) [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=5415 [算法] 对于v到1的1条合法路径 , 我们将其分为两段考虑 1. v -> u , 该路径上的最短边长大于等于P 2. u -> 1 显然 , 我们要求所有这样的路径中dist
阅读全文
摘要:Problem A. Two distinct points [题解] 显然 , 当l1不等于r2时 , (l1 , r2)是一组解 否则 , (l1 , l2)是一组合法的解 时间复杂度 : O(1) [代码] Problem B. Divisors of Two Integers [题解] 首先
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3669 [算法] 首先离线 , 将边按A值从小到大排序 然后用LCT动态维护以B值为关键字的最小生成树即可 时间复杂度 : O(NlogN ^ 2) [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2594 [算法] 首先离线 , 将删边操作转化为倒序加边 假设我们已经维护出了一棵最小生成树T , 若加入了一条边(u , v , w) , 那么形成了一个环 ,考虑kruskal算法的
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2654 [算法] 给白色边都加上一个值,会使得最小生成树上的白边数量减少,不妨二分给白色边加上的值 , 检验答案时用Kruskal求最小生成树即可 时间复杂度 : O(NlogN) [代
阅读全文
摘要:[题目链接] https://www.luogu.org/problemnew/show/P1967 [算法] 可以证明答案一定为最大生成树上两点路径中的最小值 树上倍增即可 时间复杂度 : O((N + Q) log N)[代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=2728 [算法] 0/1分数规划 + 最小生成树[代码] 在本题中,prim算法的时间复杂度优于kruskal算法,且实现较为容易,因此,笔者程序中使用的是prim算法
阅读全文
摘要:[题目链接] http://poj.org/problem?id=1639 [算法] 首先,我们可以用深度优先遍历求出1号节点去除后有几个联通块 设共有T个联通块,若T > K则无解,否则 : 求出这些联通块的最小生成树,得到一棵最小T度生成树,我们尝试改动(K - T)条边,使得答案变得更小,具体
阅读全文
摘要:【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=1601 【算法】 最小生成树 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 先求出图的最小生成树 枚举不在最小生成树上的边,若加入这条边,则形成了一个环,如果在环上且在最小生成树上的权值最大的边等于 这条边的权值,那么,显然最小生成树不唯一 树上倍增可以解决这个问题 【代码】
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 首先,有一个结论 : 一定有一棵严格次小生成树是在最小生成树的基础上去掉一条边,再加上一条边 这个结论的正确性是显然的 我们先用kruskal算法求出最小生成树,然后,枚举不在最小生成树上的边,我们发现若加上这条边, 则形成了一个环,用最小生成树的权值和加上这条
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 求出这个图的最小生成树,对于每次询问,用倍增法求出最近公共祖先,查询最小生成树上两点路径上的最大值 算法的正确性? 假设x和y在最小生成树中路径上的最长边为p,那么,根据kruskal算法的执行过程,我们发现p合并 了x和y所在的集合 假设有一条边q,满足q <
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 sum[i]表示前i个杯子中,杯子底下藏有球的杯子总数 那么,知道[i,j]这段区间中,藏有球的杯子总数的奇偶性,相当于知道sum[j] - sum[i-1]的奇偶性 我们发现,知道哪些杯子底下藏有球,就是需要我们知道所有sum[i]的奇偶性 因此,我们只需将所
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 笔者做这题参考了这篇博客 : https://blog.sengxian.com/solutions/bzoj-1016 推荐阅读 首先,我们需要知道三个定理 : 定理1 : 若A,B是两棵不同的最小生成树,它们的权值从小到大排列分别为 : W(a1),W(a2
阅读全文
摘要:【题目链接】 点击打开链接 【算法】 题目描述比较繁琐,但细心观察后,发现其实就是用kruskal算法求最小生成树 【代码】
阅读全文

浙公网安备 33010602011771号