随笔分类 - 其他-Kruskal
摘要:"http://uoj.ac/problem/108" 好神的一道题啊。 原图边权互不相同是重点! 如果有一个点集,有两组边集,要求这两组边集的并集的最小生成树,可以对两组边集分别求一下最小生成树构成新的两组边集,再合并两组新的边集。 还有,对于一个给定的最小生成树,要加入一条边,求加入一条边之后的
阅读全文
摘要:"http://www.lydsy.com/JudgeOnline/problem.php?id=1016" 统计每一个边权在最小生成树中使用的次数,这个次数在任何一个最小生成树中都是固定的(归纳证明)。 在同一个边权上对所有边权为这个的边暴力统计(可以用矩阵树定理),然后用并查集把这个边权的所有边
阅读全文
摘要:"http://www.lydsy.com/JudgeOnline/problem.php?id=3754" 核心思想:暴力枚举所有可能的平均数,对每个平均数排序后Kruskal。 正确的答案一定是最小的,枚举到正确的平均数后一定会算出正确答案。 枚举的平均数太多了,险些TLE。每两个相邻的整数$a
阅读全文
摘要:"http://www.lydsy.com/JudgeOnline/problem.php?id=3051" "http://uoj.ac/problem/57" 这道题需要平面图转对偶图,点定位,最小生成树上的倍增(NOIP2013货车运输)3个步骤。 最后一个很简单了,前两个比较麻烦。。 点定位
阅读全文
摘要:"http://uoj.ac/problem/14" "题解很好的~" 不带路径压缩的并查集能保留树的原本形态。 按秩合并并查集可以不用路径压缩,但是因为此题要删除,如果把深度当为秩的话不好更新秩的值,所以把子树大小当为秩。 合并直接合并,删除直接删除,每条边只会被添加进树一次,至多被删除一次。 离
阅读全文
摘要:http://poj.org/problem?id=3241 曼哈顿距离最小生成树模板题。 核心思想是把坐标系转3次,以及以横坐标为第一关键字,纵坐标为第二关键字排序后,从后往前扫。扫完一个点就把它插到树状数组的y-x位置上,权值为x+y。查询时查询扫过的所有点满足ydone-xdone>=ynow
阅读全文
摘要:离线后倒过来做,这样就跟魔法森林差不多了,缩边为点就可以统计边的权值了。 1A真是爽,可惜常数炸上了天,这是滥用stl容器和无脑link,cut的后果 模板一定不能写残啊,想起一个月前Round1Day1调LCT的模板调了4h,查出各种手残的错误QAQ然而并没有什么用。
阅读全文
摘要:$LCT+枚举$ 复习一下$LCT$模板。 先以$Ai$为关键字$sort$,然后$Ai$从小到大枚举每条边,看能否构成环,构不成则加边,构成则判断,判断过了就切断$Bi$最大的边。 我的边是编号为$i+n$的点,忘了这点调了好久$QAQ$ $sosad$ 我的代码就是一堵墙,让$300$行的$Li
阅读全文
摘要:sunshine的A题我竟然调了一周!!! 把循环dfs改成一个dfs就可以,,,我也不知道为什么这样就不会RE,但它却是A了,,, 这周我一直在调这个题,总结一下智障错误: 1.倍增的范围设成了n而不是n*2-1,,, 2.重构树的顶点是n*2-1,而我一开始设成了n,,, 3.define里的f
阅读全文
摘要:Kruskal重构树裸题, Sunshine互测的A题就是Kruskal重构树,我通过互测了解到了这个神奇的东西。。。 理解起来应该没什么难度吧,但是我的Peaks连WA,,, 省选估计要滚粗了TwT #include<cstdio> #include<cstring> #include<algor
阅读全文