#P16740. [GKS 2019 #F] Spectating Villages

[GKS 2019 #F] Spectating Villages

题目描述

Kickstartia 的乡村由 VV 个村庄(编号为 11VV)组成,并由 V1V-1 条双向道路(编号为 11V1V-1)连接。第 ii 条道路连接村庄 XiX_iYiY_i。每条道路恰好连接两个村庄,且没有两条道路连接同一对村庄。此外,在 Kickstartia 中,任意两个村庄之间有且仅有一条道路序列相连。

有些村庄比其他村庄更美丽。第 ii 个村庄的美丽值为 BiB_i。注意,村庄的美丽值可能为负数!

你将在一些村庄中建造灯塔。如果一个村庄本身建有灯塔,或者与它直接相连的村庄建有灯塔,则该村庄被照亮。

你可以建造任意数量(包括零个)的灯塔。问你能获得的被照亮村庄的美丽值之和最大为多少?

输入格式

输入的第一行给出测试用例的数量 TT。接下来有 TT 个测试用例。每个测试用例的第一行包含一个整数 VV,表示村庄的数量。第二行包含 VV 个整数,其中第 ii 个整数为 BiB_i,即第 ii 个村庄的美丽值。

随后 V1V-1 行,第 ii 行给出 XiX_iYiY_i,表示第 ii 条道路连接村庄 XiX_iYiY_i

输出格式

对于每个测试用例,输出一行,格式为 Case #x: y,其中 xx 是测试用例编号(从 11 开始),yy 是你能获得的最大被照亮村庄的美丽值之和。

3
9
-10 4 -10 8 20 30 -2 -3 7
1 4
2 4
4 3
9 4
9 8
7 5
6 7
7 9
4
-2 20 20 20
1 2
1 3
1 4
5
-5 -10 8 -7 -2
5 4
4 3
3 2
2 1
Case #1: 67
Case #2: 58
Case #3: 0

提示

在样例 #1 中,你可以在村庄 2277 建造灯塔。这将照亮村庄 224455667799,美丽值之和为 4+8+20+30+(2)+7=674 + 8 + 20 + 30 + (-2) + 7 = 67。还有其他建造灯塔的方式也可达到该总和。

在样例 #2 中,你可以在村庄 112233 建造灯塔。这将照亮村庄 11223344,美丽值之和为 (2)+20+20+20=58(-2) + 20 + 20 + 20 = 58。还有其他建造灯塔的方式也可达到该总和。

在样例 #3 中,最好的做法是不建任何灯塔!这样没有村庄被照亮,总和为 00

限制条件

1T1001 \le T \le 100

2V1052 \le V \le 10^5

对于所有 ii105Bi105-10^5 \le B_i \le 10^5

对于所有 ii1Xi,YiV1 \le X_i, Y_i \le V

对于所有 iiXiYiX_i \ne Y_i

对于所有 iji \ne j(Xi,Yi)(Xj,Yj)(X_i, Y_i) \ne (X_j, Y_j)

任意两个村庄之间有且仅有一条道路序列相连。

测试集 1(可见)

1V151 \le V \le 15

测试集 2(隐藏)

1V1051 \le V \le 10^5

翻译由 DeepSeek V4 Pro 完成