题号:NC277176
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
这是问题的简单版本。三个版本的做法之间可能有交集。
给定一颗

个点的无根树,每个节点有类型和权值,分别用

和

表示。一条简单路径的权值为这条路径包含的节点权值之和。
假设一条简单路径至少经过一个类型为

的节点,那么这条路径是

- 路径。
对于所有的

,输出一个整数,表示所有

- 路径的最大权值,假如不存在,输出

。
提示:本题输入输出数据量较大,建议选手使用快速的输入输出方式。
输入描述:
第一行输入一个整数
,表示测试数据组数。接下来是
个测试用例。
每个测试用例第一行输入一个整数
。
第二行有
个数
,表示每个节点的类型。
第三行有
个数
,表示每个节点的权值。
然后

行,每一行有两个整数

,表示有一条

到

的无向边。
保证所有测试用例

的和不超过

。
输出描述:
对于每个测试用例,输出一行,包含
个空格分隔的整数,表示答案。
示例2
输入
复制
6
10
6 8 10 6 4 3 10 2 7 6
-10 5 -10 8 -5 7 -1 -7 3 2
10 3
8 1
8 6
5 6
2 9
2 10
9 7
7 1
9 4
10
10 9 8 4 1 8 4 5 1 9
-1 -9 -10 -10 1 -6 9 -8 -1 -9
9 2
3 8
2 6
10 6
4 7
2 3
5 2
1 6
7 3
10
5 3 1 1 1 5 9 10 8 5
-4 -3 4 -10 -3 -3 -2 1 -2 7
6 2
2 10
8 5
3 7
10 5
6 1
4 7
4 5
9 1
10
3 7 8 3 6 8 3 10 9 10
5 -5 8 -9 5 5 -8 3 -6 2
2 1
7 2
9 3
6 8
6 4
10 1
3 2
9 8
8 5
10
3 7 8 3 6 8 3 10 9 10
5 -5 8 -9 5 5 -8 3 -6 2
2 1
7 2
9 3
6 8
6 4
10 1
3 2
9 8
8 5
5
4 2 5 4 2
4 3 -2 -1 -3
3 1
3 2
3 5
4 1
输出
复制
-1 0 7 2 -1 18 18 18 -1 10
1 -1 -1 9 -8 -1 -1 -1 -8 -1
5 -1 4 -1 7 -1 -1 -2 2 5
-1 -1 12 -1 -1 13 12 13 12 13
-1 -1 12 -1 -1 13 12 13 12 13
-1 5 -1 5 5