随笔分类 - 图论-圆方树
摘要:题目链接 "CF487E" 题解 圆方树 + 树剖 裸题 建好圆方树维护路径上最小值即可 方点的值为其儿子的最小值,这个用堆维护 为什么只维护儿子?因为这样修改点的时候就只需要修改其父亲的堆 这样充分利用了一对一的特性优化了复杂度 如此询问时如果为方点,再询问一下的父亲即可 复杂
阅读全文
摘要:题目链接 "洛谷P4606" 双倍经验: "弱化版" 题解 两点之间必经的点就是圆方树上两点之间的圆点 所以只需建出圆方树 每次询问建出虚树,统计一下虚树边上有多少圆点即可 还要讨论一下经不经过根的情况 P4606 cpp include include include include inc
阅读全文
摘要:题目链接 "洛谷P4630" 题解 看了一下部分分,觉得树的部分很可做,就相当于求一个点对路径长之和的东西,考虑一下能不能转化到一般图来? 一般图要转为树,就使用圆方树呗 思考一下发现,两点之间经过的点双,点双内所有点一定都可以作为中介点 那么我们将方点赋值为点双大小,为了去重,剩余点赋值
阅读全文