一道入门树dp, 求一棵树的重心...我是有多无聊去写这种题...傻X题写了也没啥卵用以后还是少写好..----------------------------------------------------------------#include#include#includeusing name...
分类:
其他好文 时间:
2015-12-14 23:10:26
阅读次数:
216
定义:以这个点为根,那么所有的子树(不算整个树自身)的大小都不超过整个树大小的一半。性质:性质 1 :树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两个距离和,他们的距离和一样。性质 2 :把两棵树通过某一点相连得到一颗新的树,新的树的重心必然在连接原来两棵树重心的路径上。性质 3 :...
分类:
其他好文 时间:
2015-11-11 17:57:20
阅读次数:
277
题意: 给定一棵树,n个节点,若删除点v使得剩下的连通快最大都不超过n/2,则称这样的点满足要求。求所有这样的点,若没有这样的点,输出NONE。思路: 只需要拿“求树的重心”的代码改一行就OK了。因为依然是在判别最大连通块的点数。 1 //#include 2 #include 3 #inc...
分类:
其他好文 时间:
2015-09-25 11:05:13
阅读次数:
119
题意:给一棵树,n个节点,给定一个数k,求任意满足dist(a,b) 2 #include 3 #include 4 #include 5 #include 6 #include 7 #define pii pair 8 #define INF 0x3f3f3f3f 9 #...
分类:
其他好文 时间:
2015-09-15 21:43:13
阅读次数:
307
题意:求树的重心,若有多个重心,则输出编号较小者,及其子树中节点最多的数量。思路: 树的重心:指的是一个点v,在删除点v后,其子树的节点数分别为:u1,u2....,设max(v)为其中的最大值,点v的max(v)是所有点里面最小的,称v为树的重心。 如何求任一重心?按树形来看,max(v)可以.....
分类:
其他好文 时间:
2015-09-14 22:25:54
阅读次数:
227
树的点分治,主要思想是每次找子树的重心,计算经过根节点的情况数,再减去点对属于同一子树的情况。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include...
分类:
其他好文 时间:
2015-09-12 16:05:25
阅读次数:
192
显然资源集合处就是树的重心,这题需要动态维护树的重心。每个连通块以重心为根,用link-cut tree维护每个点的子树大小以及子树内所有点到它的距离和。合并两个连通块时,考虑启发式合并,暴力往大的树中添加叶子。添加叶子时,需要将叶子到重心路径上所有点的子树大小+1,距离和则加上一个等差数列。并且新...
分类:
其他好文 时间:
2015-09-01 21:32:19
阅读次数:
288
树形dp,意思就是在树上的dp, 看了看紫书,讲了三个大点把,一个是树的最大独立集,另外一个是树的重心,最后一个是树的最长路径。给的三个例题,下面就从例题说起第一个:工人的请愿书 uva 12186这个题目给定一个公司的树状结构,每个员工都有唯一的一个直属上司,老板编号为0,员工1-n,只有下一级的...
分类:
其他好文 时间:
2015-08-14 21:24:06
阅读次数:
219
题意:求树的重心裸题。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define eps 1e-6
#define LL long long
#define p...
分类:
其他好文 时间:
2015-08-10 18:13:13
阅读次数:
101