3789: 连通块(第二轮03)

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:4 解决:2

题目描述

给定一棵根为1的,包含n个点的树。其中第i个点的权值为ai, dfs序为 dfni 。

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

备注  1:

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

 

备注 2:

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

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

输入

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

第二行包含 n  个整数,第  i  个整数为第  i  个结点的权值 vali (−10^9  ≤  vali   ≤  10^9)

接下来的 n  行里,  i 行的第一个数字为一个非负整数 si,表示第  i 个结点的孩子个数, 然后给出 s_i  个正整数按顺序表示它的所有孩子编号。

接下来的 m  行,每行给出两个正整数 u, v (1  ≤  u, v  ≤  n)   描述一个约束,表示最终的连 通块中 u, v  的 dfs  序不能相邻。

输出

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

样例输入 复制

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

样例输出 复制

12

提示

【备注】

测试点编号 n ≤ m ≤ 特殊性质
1 − 4 20 3 保证树随机
5 − 8 100000 5 保证树随机
9 − 12 100000 20 保证树随机,对于所有限制,保证u是v在树上的第一个儿子
13 − 14 100000 20 保证树随机
15 − 16 100000 12
17 − 20 100000 21

来源/分类