树的重心
WerKeyTom_FTD
我是一只来自中山纪念中学高三的oier,请多多指教
展开
-
神界古树
题目大意给定大小为n的树,求所有点的所有子树的最大大小的最小值。 n<=10^5。模拟题意大水题一道。 他的实质应该是找重心(所有子树大小不到一半且最大子树最小),所以只要转化为有根树并处理出size[i]表示以i为根的子树的大小模拟题意即可。原创 2015-09-28 13:00:41 · 661 阅读 · 0 评论 -
阴阳
题目大意给定一颗有n个结点的树,每条边的权值为1或-1。问有多少点对(i,j)(注意点对不存在顺序性),满足i到j的最短路径上能找到一个点k,使得i到k的最短路径权值和为0,k到j的最短路径权值和为0。 n<=100000。点分治我们进行点分治。 对于当前的根x,我们统计有多少对经过了x的满足题目要求。 我们可以处理出d[i]表示i到x的权值和,b[i]=1表示i到x路径上可以找到异与i与x的原创 2015-12-28 19:30:25 · 558 阅读 · 0 评论 -
树中点对距离
题目大意在一颗N个结点的树上,统计有多少点对最短距离<=m。(点对不存在顺序性)N<=10000点分治我们选取一个点x作根,那么任何点对都分成两种类型 1、经过x 2、不经过x 我们对经过x的进行统计,对于不经过x的继续在x的子树中分治下去。这就是点分治。 我们处理出每个点的深度,排序后就很容易统计经过x的个数。 不过有可能出现一对点对的lca是y而不是x,然后他们被统计进去了,要在往下分原创 2016-01-02 15:55:01 · 1355 阅读 · 0 评论 -
[bzoj3510]首都
题目大意一开始有n个结点,没有边。 有三种操作:将两个结点间连一条边,并且保证两个结点属不同联通块。询问一个联通块中所有点到其距离和最小的点。询问所有联通块中所有点到其距离和最小的点的异或和。启发式合并显然是一片森林,要求维护重心。 可以用启发式合并的思路,把小的合到大的里面,然后调整原本大的树里的重心,显然这个重心只会朝着小树方向调整,而且最多移动小树大小步。 然后需要用LCT来维护森林,并原创 2016-05-21 15:54:02 · 1329 阅读 · 0 评论 -
[51nod1558][CF468D]树中的配对
题目大意一颗n个节点的树,边有边权。 求一个字典序最小的排列p 使得∑dis(i,pi)\sum dis(i,pi)最小思考∑dis(i,pi)=∑depi+deppi−2∗deplca(i,pi)=2∗∑depi−2∗∑deplca(i,pi)\sum dis(i,pi)=\sum dep_i+dep_pi-2*dep_{lca(i,pi)}=2*\sum dep_i-2*\sum dep_{原创 2017-03-22 16:48:09 · 1145 阅读 · 1 评论 -
[agc018d]Tree and Hamilton Path
前言做过类似的idea题。题目大意给你一棵树,然后你需要找到一个n的排列[,使得 ∑n−1i=1dis(pi,pi+1)\sum_{i=1}^{n-1}dis(p_i,p_{i+1}) 最大,输出答案即可。做法假设p1=s,pn=t。 我们提取重心作为根。 设sum为深度和。 答案为2∗sum−dep[s]−dep[t]−∑n−1i=1dep[lca(pi,pi+1)]2*sum-dep[原创 2017-10-07 16:16:40 · 783 阅读 · 0 评论