#sXDPybttg050208. 1582:周年纪念晚会
1582:周年纪念晚会
好的,我将这道题整理为清晰的题面格式,并补充样例解释、数据范围与时空限制:
题目描述
Ural 州立大学的校长正在筹备学校的 80 周年纪念聚会。由于学校的职员有不同的职务级别,可以构成一棵以校长为根的人事关系树。每个职员都有一个唯一的整数编号,从 到 编号,且对应一个参加聚会所获得的欢乐度 。为使每个职员都感到快乐,校长设法使每个职员和其直接上司不会同时参加聚会。
你的任务是设计一份参加聚会者的名单,使总欢乐度最高。
输入格式
第一行是一个整数 ;
接下来 行对应 个职员的欢乐度,第 行的一个整数为第 个职员的欢乐度 ;
接着是学校的人事关系树,每一行格式为 L K,表示第 个职员是第 个职员的直接上司,输入以 0 0 结束。
输出格式
输出一行一个整数,表示参加聚会者获得的最大欢乐度。
样例
样例输入
7
1
1
1
1
1
1
1
1 3
2 3
6 4
7 4
4 5
3 5
0 0
样例输出
5
样例解释
,所有职员欢乐度均为 。
人事关系:
- 3 是 1 的上司
- 3 是 2 的上司
- 4 是 6 的上司
- 4 是 7 的上司
- 5 是 4 的上司
- 5 是 3 的上司
所以树结构为:
5
/ \
3 4
/ \ / \
1 2 6 7
(根节点是5)
限制:不能同时选一个节点及其直接上司。
求最大欢乐度:
一种最优方案:选 3, 4, 1, 2, 6, 7 中的哪些?
如果选 3,则不能选 1,2,5;
如果选 4,则不能选 5,6,7;
如果选 5,则不能选 3,4。
枚举可能性:
- 选 5,不能选 3,4,只能从 {1,2,6,7} 中选,欢乐度 1+1+1+1+1=5
- 不选 5,可以选 3 和 4,但 3 和 4 不冲突,可以同时选,然后 1,2 不能选(因为 3 选了),6,7 不能选(因为 4 选了),总欢乐度 1+1=2,不如 5。
所以最大欢乐度是 5(选 5 和它的四个下属中的四个?不对,选 5 后,3,4 不能选,1,2,6,7 都能选,共 5 个节点,欢乐度各 1,总 5)。
因此输出 5。
数据范围
对于 的数据:
- (欢乐度可能为负)
时空限制
- 时间:
- 内存:
提示
此题为 树的最大权独立集 问题(没有上司的舞会)。
状态定义:
- 表示以 为根的子树,且 不参加聚会时的最大欢乐度;
- 表示以 为根的子树,且 参加聚会时的最大欢乐度。
转移方程:
- 若 不参加,则其子节点 可参加或不参加:$$dp[u][0] = \sum_{v \in son(u)} \max(dp[v][0], dp[v][1])$$
- 若 参加,则其子节点 不能参加:
初始化:叶子节点 。
最终答案为 ,其中 是整棵树的根(需要根据输入找出根,即没有上司的节点)。
复杂度 。