树形DP-POJ-2342-Anniversary party

来源:互联网 发布:光伏数据采集器品牌 编辑:程序博客网 时间:2024/04/30 17:21

POJ 链接: http://poj.org/problem?id=2342

HODJ 链接 : http://acm.hdu.edu.cn/showproblem.php?pid=1520

不得不吐槽,HDOJ不止java会超时,C++也会超时,非要scanf这种低级写法,有意思么?

1.题目大意

某大学举办年会, 请职员们参会. 每个人都有一个活跃值(逗逼属性值), 职工之间具有层级关系.

一个职员不能与他的直接上司一起参会, 因为这样玩不开, 会尴尬.

求怎么安排, 使得与会的人的活跃值最大.只要输出这个值就可以.

2.解题思路


图2-1 职员间的层级关系

树形DP.

建立数组dp[N][2].

dp[i][0] 表示第i个人不参会,他的团队的最大活跃值
dp[i][1] 表示第i个人参会,他的团队的最大活跃值

那么就容易得到状态转移方程,见代码.

用深度搜索遍历下级的团队活跃值,那么最后求的就是 max(dp[ceo][0], dp[ceo][1]).


3.代码


0 0
原创粉丝点击