![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态点分治
stargazer.
夜を穿つの
展开
-
【洛谷P3345】【ZJOI2015】—幻想乡战略游戏(动态点分治)
传送门 由于基础的求带权重心都是O(n)O(n)O(n)的 考虑优化,考虑到以uuu为根的树 如果重心在儿子vvv的子树,那么显然以vvv为补给站也肯定会比uuu优 那么我们可以在树上二分,每次看带权重心在哪颗子树暴力跳 多次询问可以点分树来解决二分 考虑具体实现 我们记录一个dis1dis1dis1表示点分树中uuu的子树到uuu的贡献 dis2dis2dis2表示uuu对点分树的父亲的贡献 ...原创 2019-02-16 09:08:17 · 215 阅读 · 0 评论 -
【BZOJ4012】【HNOI2015】—开店(动态点分治)
传送门 感觉和幻想乡那道题差别不是很大 每一层排序后用一个数据结构来维护 因为没有修改直接每个点维护子树信息 排序后每次询问二分前缀和就可以了 记录一下每个点自己的答案和对父亲的贡献 相减一下就可以了 具体可以参考代码 #include<bits/stdc++.h> using namespace std; #define ll long long #define re registe...原创 2019-03-30 19:52:24 · 104 阅读 · 0 评论 -
【BZOJ3730】—震波(动态点分治)
传送门 珍爱生命,远离动态点分治 显然对于每一个分支中心维护一个BitBitBit,统计深度为iii的所有点的valvalval之和 每次暴力跳fafafa统计自己的答案减去对父亲的贡献 主要在于如何维护一个BitBitBit,暴力建显然是不可能的 空间开不下 我们可以利用vectorvectorvector的assignassignassign动态开点就好了 (主要是不会用new in...原创 2019-04-02 20:22:11 · 180 阅读 · 0 评论 -
【BZOJ4372】—烁烁的游戏(动态点分治)
传送门 动态点分治模板题 结果点分树建挂了。。。。 #include<bits/stdc++.h> using namespace std; const int RLEN=1<<20|1; inline char gc(){ static char ibuf[RLEN],*ib,*ob; (ob==ib)&&(ob=(ib=ibuf)+fre...原创 2019-09-17 18:08:02 · 159 阅读 · 0 评论