动态点分治
L_0_Forever_LF
一个热爱OI的OIer
展开
-
BZOJ1095: [ZJOI2007]Hide 捉迷藏
所以为什么这道是动态点分治的模板题….细节好爆炸动态点分治按每次分治的重心建树,然后在分治的过程中处理出每个点在原树中到它新树中log个父亲的距离,它在新树中的层数 然后维护(好多个)堆,分别是(新树中)每个点的子树内所有点到它父亲的距离heap[x],(新树中)每个点各个子树到它的最长链heap2[x](注意自己到自己的一条长度为0的链以处理子树延伸上来的单链),还有一个全局的堆维护每个重心处的原创 2017-03-30 09:22:37 · 1076 阅读 · 0 评论 -
51nod 1297 管理二叉树
预处理写挂,邻接表开小,是不是要退役了…动态点分治如果建出了树,就是一道动态点分治的(模板题?),一开始所有点点权为0,然后一个个点赋权,维护每个点管理的块内到父亲的带权距离和,每个点的管的块内到该点的带权距离和,每个点管理的块内带权的点的数量,就可以求出每次赋权增加的距离和了然后考虑怎么建出最终的树,此处提供两种做法 1(来自队爷):将每个点按权值排序后,最先出现的点肯定是根,然后比这个点小的全原创 2017-03-30 19:58:56 · 794 阅读 · 1 评论