摘要: 题目大意:一棵树,每个节点都带权。从中取出一些节点,并且子节点不能与父节点同时取,求能取得的最大值。 题目分析:定义状态dp(u,0/1)表示u点不取/取。则状态转移方程为: dp(u,1)=sum(dp(v,0)) dp(u,0)=sum(max(dp(v,1),dp(v,0))) 其中,v为u的 阅读全文
posted @ 2016-03-31 21:05 20143605 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 题目大意:在一棵带边权的有根树中,对于每个点,找出它与离它最远的那个点的之间的距离。 题目分析:对于一个点,离它最远的点只有两种情况,一是它到叶子节点的最远距离,一是与它父亲的距离加上他的父亲到叶子节点的最远距离。因为它的父亲到叶子的最远距离的那条路径可能恰好经过它自己,所以还要求出每个点到叶子节点 阅读全文
posted @ 2016-03-31 19:27 20143605 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给出一片森林,总共有n个点,并且都有权值。从中选出m个,使权值和最大。其中,选某个节点之前必须先选其父节点。 题目分析:给所有的树都加一个共同的权值为0的根节点,使森林变成一棵树。定义状态dp(u,k)表示在以节点u为根节点的组中选k个节点的最大权值。则状态转移方程为: dp(u,k)=m 阅读全文
posted @ 2016-03-31 19:20 20143605 阅读(160) 评论(0) 推荐(0) 编辑