树形DP
文章平均质量分 75
AC_Gibson
这个作者很懒,什么都没留下…
展开
-
HDU3534 Tree 求树的直径及其个数
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3534 题目大意:给出一颗n个节点的树,每条边对应一个长度,求出距离最大的两个节点之间长度,并找出一共有多少个顶点对。 实现代码如下: /*求最长边的时候可以统计一下最长边的个数, 那么以u为根节点的子树中最长边为:Len[u]+max(len[v]), 个数node[u]*nod原创 2015-10-22 13:06:43 · 2558 阅读 · 1 评论 -
POJ3107 Godfather 求树的重心
题目链接:http://poj.org/problem?id=3107 题目大意:求树的重心,如果有多个节点,按节点编号升序输出所有的。 分析:用vector存储图会TLE,这里用了前向星存储图,用set来记录节点可以省去排序(set是一颗二叉树,自动把加入的点按升序排列了)。 实现代码如下: #include #include #include #inclu原创 2015-10-22 16:19:07 · 582 阅读 · 0 评论 -
POJ1655 Balancing Act 求树的重心
题目链接:http://poj.org/problem?id=1655 题目大意:树的重心:找到一个点作为新的树根,其所有的子树中最大子树的节点数最少,那么这个点就是这个树的重心。树的重心的意义在于,删去重心后,生成的多棵树尽可能平衡。 分析:一次搜索即可。DFS每一个点s,找出其各个子树的节点数,纪录最大值son[s],然后比较balance=max(son[s],n-son原创 2015-10-22 10:59:43 · 451 阅读 · 0 评论