树形DP
文章平均质量分 86
Lanifer
这个作者很懒,什么都没留下…
展开
-
POJ 2342 Anniversary party(树形DP)
题目: 每个人有个rating值, 总rating值为在场的所有人的rating值之和,但有个要求: 每个人都不能和他的直接上司待在一起,问最大可能的rating值是多少? 分析: 所有人的关系构成了一棵树,我们可以用d[i]表示已i为根节点的子树的rating值之和。 节点i有两种决策: 选和不选。 如果选节点i,则问题转化为 i 的所有孙子rating值之和;若不选 i 则问题转原创 2013-10-10 16:56:25 · 667 阅读 · 0 评论 -
POJ 3342 Party at Hali-Bula(树形DP)
题目链接 相比POJ 2342那题,增加了一问:最佳选择是否唯一的. 首先可根据雇员与老板的关系建立一颗树,老板做根节点,雇员是该根节点的儿子。 如上面这棵简易的树,对于节点A有两种决策: 选与不选。 若选择A,则B 、C都不能选,问题转换为求所有以 “B、C的儿子为根节点的树” 子问题最优解之和。 若不选A, 则问题转换为求“以B、C为根节点"的子树的最优解之和。原创 2013-10-13 00:23:06 · 684 阅读 · 0 评论 -
POJ 1947 Rebuilding Roads
链接 不太容易得到状态方程及其转移, 花了好长时间理解。 dp[ i ][ j ] :从以 i 为根的子树中分离出 j 个联通的节点至少需要砍掉的边数(根节点必须保留,暂未考虑将 i 和它的父亲分离)。 初始化: dp [ i ][ j ] = INF ( j >=2 && j 再依次考虑每个 i 的儿子是否需要连接: 若不连, dp[ i ][ j ]不变 , 即d原创 2013-10-13 23:37:49 · 610 阅读 · 0 评论