#CSPSMNS02D. 连通块
连通块
【题目描述】
给定一棵根为 1 的包含 个点的树,这些点分别被编号为 。其中第 个点的权值为 , 序为 。
现在你需要在这棵树上找到一个连通块,连通块需要满足题目给定的 个限制,每个限制用两个正整数 描述。要么 不同时存在于这个连通块中,要么 在这个连通块上的 序不相邻。请在这棵树上找到满足题目限制条件的权值之和最大的连通块。
备注 1:
一个结点可能有多个孩子结点,这些孩子是有 的先后顺序的, 顺序就是题目输入的顺序。
备注 2:
连通块的 序的定义:找到连通块在原树上深度最小的点开始 ,然后仍然根据题目读入的顺序获取每个点的 顺序。
大的来了(指样例)sample.zip
【输入格式】
第一行包含两个正整数 ,表示结点的个数和限制的个数;
第二行包含 个整数,第 个整数为第 个结点的权值
接下来的 行里,第 行的第一个数字为一个非负整数 ,表示第 个结点的孩子个数,
然后给出 个正整数按顺序表示它的所有孩子编号。
接下来的 行,每行给出两个正整数 描述一个约束,表示最终的连通块中 的 序不能相邻。
【输出格式】
输出一行一个整数表示答案。
【样例 1 输入】
6 3
2 2 1 3 2 5
2 2 6
3 3 4 5
0
0
0
0
3 4
5 6
2 6
【样例 1 输出】
12
【备注】
测试点编号 | 特殊性质 | ||
---|---|---|---|
1 − 4 | 20 | 3 | 保证树随机 |
5 − 8 | 100000 | 5 | |
9 − 12 | 20 | 保证树随机,对于所有限制,保证是在树上的第一个儿子 | |
13 − 14 | 保证树随机 | ||
15 − 16 | 12 | ||
17 − 20 | 21 |