知识点:树的重心
定义:以这个点为根,那么所有的子树(不算整个树自身)的大小都不超过整个树大小的一半。
性质:
性质 1 :树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两个距离和,他们的距离和一样。
性质 2 :把两棵树通过某一点相连得到一颗新的树,新的树的重心必然在连接原来两棵树重心的路径上。
性质 3 :一棵树添加或者删除一个节点,树的重心最多只移动一...
分类:
其他好文 时间:
2014-07-27 11:44:53
阅读次数:
238
膜拜了NN个大神的代码,看了一整天,弱菜伤不起啊。求拜师啊
问题分析:求树上每个节点到其它节点的最远距离
每个节点到其它节点的最远距离就是以该节点为根的树所能达到的最大深度,这样子的话,要把每个节点转化为根,总共dfs的次数为节点数,肯定超时
于是~
一个节点的最长路:1.从该节点往下取得最长路(子树部分) 2.从该节点往上取得的最长路(父节点往上的部分)
情况1:自下而上的d...
分类:
其他好文 时间:
2014-07-27 11:27:42
阅读次数:
218
题目:hdu 4003 Find Metal Mineral
题意:火星上发现了一些n个矿厂,有 k 个机器人从 s 点出发采矿,给出路段间的花费cost,求最小的花费采所有的矿。
分类:树形dp + 分组背包
分析:结论1:假如我们从 i点出发k个机器人采完以 k 为根节点的所有矿又回到 i 点,那么花费为 i 为根节点的cost 的和 乘以 k。
对于每个节点...
分类:
其他好文 时间:
2014-07-26 02:15:36
阅读次数:
209
DP中的树形DP,解决方法往往是记忆化搜索。显然,树上递推是很困难的。当然做得时候还是得把状态定义和转移方程写出来:dp[u][1/0]表示以u为根节点的树 涂(1) 或 不涂(0) 颜色的最少方案数。树上DP有两个经典问法:一条边两端至少有个一个端点涂色,问整个tree最少涂色次数;还有一种忘了。...
分类:
其他好文 时间:
2014-07-26 01:35:26
阅读次数:
171
Balancing Acthttp://poj.org/problem?id=1655 1 #include 2 #include 3 #include 4 #include 5 #define mt(a,b) memset(a,b,sizeof(a)) 6 using namespace std;...
分类:
其他好文 时间:
2014-07-25 16:39:11
阅读次数:
429
题目:hdoj1010Starship Troopers
题意:...
分类:
其他好文 时间:
2014-07-23 22:41:07
阅读次数:
395
题目:hdoj1561The more, The Better
题意:ACboy很喜欢玩一种战略游戏,在一个地图上,有N座城堡,每座城堡都有一定的宝物,在每次游戏中ACboy允许攻克M个城堡并获得里面的宝物。但由于地理位置原因,有些城堡不能直接攻克,要攻克这些城堡必须先攻克其他某一个特定的城堡。你能帮ACboy算出要获得尽量多的宝物应该攻克哪M个城堡吗?
分析:
分类:树形d...
分类:
其他好文 时间:
2014-07-23 18:05:26
阅读次数:
227
题目:poj2342Anniversary party
题意:话说一个公司的一些然要去参加一个party,每个人有一个愉悦值,而如果某个人的直接上司在场的话会非常扫兴,所以避免这样的安排,问给出n个人,每个人的愉悦值以及他们的上司所属关系,问你让那些人去可以让总的愉悦值最大,并求出这个值。
分析:树形dp入门题目,这个公司的人事关系可以根据给出的数据得到一个树,最上面的是最高层...
分类:
其他好文 时间:
2014-07-23 13:03:06
阅读次数:
184
这题难在破环。对于不是环的情况,只需按照一般的树形DP来做,一步一步往根递推就可以了。对于环,则枚举其中一点的两种情况,取或不取,然后再递推,就可以了。当到达某结点的下一结点为环开始的点时,退出即可。 1 #include 2 #include 3 #include 4 #include 5...
分类:
其他好文 时间:
2014-07-18 16:24:37
阅读次数:
201