点分治
TouchDreamer
这个作者很懒,什么都没留下…
展开
-
点分治入门
重心分解(Centroid Decomposition)首先要找到树的中心,树的重心的定义是:删除该中心结点得到的最大子树的顶点数最少的顶点就是树的重心。运用dfs的方法很容易实现,代码为:void get_hvy(int u, int fa){ siz[u] = 1, maxx[u] = 0; for(int i = head[u]; i != -1; i = e[i].ne...原创 2019-10-23 16:37:19 · 395 阅读 · 0 评论 -
POJ 1740 Tree(点分治)
题目分析 这道题是挑战上的一道题目,挑战上面代码写的很长并且不容易理解。此题也是楼教主男人八题之一。不过随着算法竞赛的难度逐年增加,以前的论文题现在也变成了模板题,关于点分治的问题很多,区域赛也有出过。 这道题具体方法是这样的,我们首先对树找重心,重心不理解的可以去查资料。然后根据重心对树进行分治,我们计算到树根距离小于等于K的节点,然后计算有多少对,但是我们会发现我们子树进行分治时这些点原创 2017-05-09 20:33:07 · 408 阅读 · 0 评论