倍增
Young_Zn_Cu
update:目前数学在读,金融入门级爱好者,考虑转码,目前学习深度学习和数据分析中。欢迎友好交流~
----------------------------------
SCOI yangxt
登山不以艰险而止,则必臻乎峻岭。
AFO
展开
-
2020-11-05NOIP模拟测T2
原题链接 但我没加多组数据爆零了zbl 题目中提供了一个跑路器概念,即走2k2^k2k长度需要1s1s1s,容易发现对于一条边,相当于202^020,所需时间也是1s1s1s,那相当于能绕2k2^k2k条边到达的点就可以连一条长度为111的边跑最短路。倍增判断从一个点到另一个点绕2k2^k2k次边是否可达即可。 观察数据范围发现FloyedFloyedFloyed可过,最外层循环判断从一个点到另一个点绕2k2^k2k次边是否可达,内三层就是FloyedFloyedFloyed。 总复杂度O(n3∗32)O(原创 2020-11-06 08:17:52 · 92 阅读 · 0 评论 -
[BJOI2018]求和
[BJOI2018]求和 先用倍增找出查询两点的LCALCALCA,如果LCALCALCA就是它们中的一个,那就直接在链上处理,注意whilewhilewhile它是怎么运行的,不要忘了加上最后LCA的贡献(做题的时候一定要想清楚再写,最好造几组特殊数据手玩)(要不是把题解扒了一篇下来对拍我估计还在WAWAWA)。如果LCALCALCA不是它们中的一个,那就分别拆成两条链来处理,也注意如何计算LCALCALCA的贡献。注意到kkk很小,直接暴力计算即可(然而我还非常智障的去问神仙有没有公式来算这个⋯\cdo原创 2020-10-29 08:39:31 · 190 阅读 · 0 评论 -
LCA
注意: DFSDFSDFS从根节点开始 找根的时候是先把x,yx,yx,y跳到同一深度,所以比较depdepdep一定要加=== 第二次倍增是直接找LCALCALCA那个点,所以比较的不是depdepdep是直接比较fff,第二次倍增跳一定是从20→020\to020→0,不是20→120\to120→1。 #include <bits/stdc++.h> using namesp...原创 2019-11-15 19:48:00 · 165 阅读 · 0 评论 -
Tree[LCA模板]
LCA求公共祖先原创 2019-10-16 08:31:14 · 120 阅读 · 0 评论