Processing math: 100%

随笔分类 -  Algorithm --- 点分治

摘要:"题面" 题解 考虑最小化dis(x,y) 这里需要对一种奇怪的最小生成树算法:Boruvka算法有深刻的理解。 考虑该算法的执行过程,我们可以考虑进行点分治,每次找到离分治重心最近的点,然后将分治重心的所有子树的点全部向这个点连边,边数是O(子树大小)的,所以总边数 阅读全文
posted @ 2019-03-01 17:27 xgzc 阅读(187) 评论(5) 推荐(1) 编辑
摘要:"题面" 题解 树链剖分 + 主席树 先考虑一个简单一点的问题: "【LNOI2014】LCA" 我们考察dep[LCA(i,x)]的性质,发现它是ix的链交的长度。 那么对每个i所在的链打一个区间加标记,询问时算一下x所在的链的区间和即可。 如果有$l \ 阅读全文
posted @ 2019-02-22 08:35 xgzc 阅读(226) 评论(2) 推荐(0) 编辑
摘要:"题面" 题解 强行将最短路和点分治~~(长链剖分)~~融合在一起的题目 构建出字典序最小的最短路树之后,就可以用点分治来解决了 不过有一些细节要注意: 这样建出的最短路树是123 而不是12,13 ~~相信这组美妙的数据可以帮助你调错~~ "再来一组数据" 这组hack数据的核 阅读全文
posted @ 2019-01-17 08:38 xgzc 阅读(230) 评论(0) 推荐(0) 编辑
摘要:题面 题解 点分治大火题。。。 设白边数量为a,黑边为b,则2min(a,b)max(a,b)2ab&&2ba 考虑点分治时如何统计答案: 2(a1+a2)b1+b2 $\therefore 2a_1-b_1\g 阅读全文
posted @ 2018-12-24 11:16 xgzc 阅读(229) 评论(1) 推荐(0) 编辑
摘要:题面 题解 树上求点对数目的题大多都是点分治解决 路径统计中有一个问题,如果现在求出从上到下的链长a,从下到上的链长b和深度c, 则: a×10c+b0(modm) 两边同除以c,得 $ a + b\times10^{-c}\equiv0(m 阅读全文
posted @ 2018-12-22 15:51 xgzc 阅读(441) 评论(0) 推荐(0) 编辑
摘要:"题面" 题解 感觉和CDQ分治一样套路啊 首先,构建出点分树 对于每一层分治重心,求出它到子树中任意点的距离 然后twopointers计算满足小于等于K的点对数目,加入答案 但是可能会算重,那么就减去子树内两两点之间的贡献即可。 代码 cpp include include inc 阅读全文
posted @ 2018-10-20 22:46 xgzc 阅读(142) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示