树上操作
文章平均质量分 76
Glory_g
明日之我胸中有沟壑,立马振山河
展开
-
poj 1655 Balancing Act 求树的重心(详解树重心求法)
先来说一下树的重心的定义 : 一棵无根树上选择一个节点当作根节点,使得以这个节点为根的最大子树的节点数最少。这样的话就可以使得这棵树趋于平衡,在一些点分治或者其他算法中可以避免最坏的 n^2 的情况使得复杂度稳定为nlogn。 关于树的重心的求法:求法为一种从叶子到根的树形dp。具体做法为先随便取一个节点提到根上做一遍dfs,记录下每个节点包含该节点的子树大小(大小即为该节点所有儿子的大小加上1原创 2017-08-28 09:52:30 · 1465 阅读 · 0 评论 -
HDU 2196 Computer(求树上每个节点到其它点的最远距离 树dp)
题意:求树上每个节点到其他节点的最大距离。 题解 : 用树dp 首先我们发现每个节点要么先向上走要么先向下走,并且只要向下走就会一直向下走直到走到叶子节点,如果向上走那么下一步即可以向上走也可以向下走。我们用f[i] 表示第一步向下走时 i 节点走到的最远距离 g[i] 表示第一步向上走走到的最远距离,不难得到一个状态转移方程 : f[i] = max (f[j] + cost[i][j]) 其原创 2017-08-28 10:50:40 · 1016 阅读 · 0 评论