#CSPSMNS02D. 连通块

连通块

【题目描述】

给定一棵根为 1 的包含 𝑛𝑛 个点的树,这些点分别被编号为 1𝑛1 ∼ 𝑛。其中第 𝑖𝑖 个点的权值为 𝑎𝑖𝑎_𝑖dfsdfs 序为 dfn𝑖dfn_𝑖

现在你需要在这棵树上找到一个连通块,连通块需要满足题目给定的 𝑚𝑚 个限制,每个限制用两个正整数 𝑢,𝑣𝑢, 𝑣 描述。要么 𝑢,𝑣𝑢, 𝑣 不同时存在于这个连通块中,要么 𝑢,𝑣𝑢, 𝑣 在这个连通块上的 dfsdfs 序不相邻。请在这棵树上找到满足题目限制条件的权值之和最大的连通块。

备注 1:

一个结点可能有多个孩子结点,这些孩子是有 dfsdfs 的先后顺序的,dfsdfs 顺序就是题目输入的顺序。

备注 2:

连通块的 dfsdfs 序的定义:找到连通块在原树上深度最小的点开始 dfsdfs,然后仍然根据题目读入的顺序获取每个点的 dfsdfs 顺序。

大的来了(指样例)sample.zip

【输入格式】

第一行包含两个正整数 𝑛,𝑚𝑛, 𝑚,表示结点的个数和限制的个数;

第二行包含 𝑛𝑛 个整数,第 𝑖𝑖 个整数为第 𝑖𝑖 个结点的权值 vali(109vali109)val_i(−10^9 ≤ val_i ≤ 10^9)

接下来的 𝑛𝑛 行里,第 𝑖𝑖 行的第一个数字为一个非负整数 𝑠𝑖𝑠_𝑖,表示第 𝑖𝑖 个结点的孩子个数,

然后给出 𝑠𝑖𝑠_𝑖 个正整数按顺序表示它的所有孩子编号。

接下来的 𝑚𝑚 行,每行给出两个正整数 𝑢,𝑣(1𝑢,𝑣𝑛)𝑢, 𝑣(1 ≤ 𝑢, 𝑣 ≤ 𝑛) 描述一个约束,表示最终的连通块中 𝑢,𝑣𝑢, 𝑣dfsdfs 序不能相邻。

【输出格式】

输出一行一个整数表示答案。

【样例 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
}