树形dp
ivancr
这个作者很懒,什么都没留下…
展开
-
HDU 2196
题意:有n台电脑,他们之间连着线,之间具有权值,问每一台电脑到哪台电脑的权值最大。 分析:这n台电脑的关系可以构成一棵树,问题即问到叶子结点的最远距离是多少。 设dp(i,0)表示以i为子树的最远叶子结点距离,dp(i,1)表示以i为子树的次远叶子结点距离,dp(i,2)表示tree(root)-tree(i)的最远距离+dis(root,i),root为i的父节点原创 2015-10-23 15:22:37 · 374 阅读 · 0 评论 -
poj2342
题意:公司开晚会,每个人都有对应的活跃度,他们都不希望自己的上司来,邀请哪些人能使活跃度最大 分析:dp(i,0)表示第i个人不来 dp(i,1)表示第i个人来 dp(root,1) += dp(i,0) 上司来了,那么下属就不回来 dp(root,0) += max(dp(i,0),dp(i,1))原创 2015-10-22 23:44:56 · 789 阅读 · 0 评论 -
HDU 1561 树形dp+背包
分析:攻下一座城堡的前提是要先攻下它的前驱城堡,建立一个以0为根结点的树,他的权值为0 dp(i,j)表示以i为根结点去j个的最大值。 dp(i,1) = v[i] (v[i]为攻下i城堡获得的宝藏) 对与u结点取j+1个,可以转化为以孩子i为根取k个+以自己为根取j+1-k个和自己取j+1个的最大值 (为什么是j+1,因为建立了一个虚拟结点0,所原创 2015-10-23 21:35:05 · 315 阅读 · 0 评论