#P16179. [ICPC 2014 NAIPC] Gold Bandits
[ICPC 2014 NAIPC] Gold Bandits
题目描述
在遥远山峦的一个山谷里,分布着许多村庄。所有村庄都由一位残暴的国王统治,他要求每个村庄每年向他进贡黄金。当国王下令时,村庄必须尽快将黄金送到国王那里。
王国中有一个强盗村庄。这个强盗村庄没有为国王积攒任何黄金,因为他们把每一分钱都花光了!他们该怎么办呢?嗯,由于他们是强盗,当他们在前往城堡的途中经过其他村庄时,他们可以选择(或不选择)从路径上的任何村庄偷走黄金,并将其作为自己的贡品献给国王。
强盗们会以尽可能少的村庄数量到达城堡。他们还有另一个考虑因素——在将黄金交给国王后,强盗们必须能够返回家园。他们认为,如果返回途中经过一个他们偷过黄金的村庄,那是不安全的。除此之外,强盗们不关心返回家园需要多长时间。
请确定强盗们在前往国王城堡的路上能够偷取的最大黄金数量,同时仍能安全返回家园。
输入格式
输入中有多个测试用例。每个测试用例的第一行包含两个整数 ()和 (),其中 是村庄的数量, 是道路的数量。村庄编号为 。村庄 1 是强盗的家,村庄 2 是国王的城堡。下一行包含 个空格分隔的整数 (),表示村庄 3, 4, ..., 中的黄金数量(跳过强盗的家和国王的城堡)。接下来的 行,每行包含两个整数 和 (),表示村庄 和村庄 之间有一条道路。所有道路都是双向的。所有 个 对都是唯一的。从每个村庄到其他任何村庄都存在直接或间接的路径。输入以一行两个 0 结束。测试数据大小约 18 KB。
输出格式
对于每个测试用例,输出一个整数,表示强盗们能够偷取并仍能安全回家的最大黄金数量。每个整数输出在自己的行上,不要包含空格。输出之间不要打印空行。
3 3
1
1 2
2 3
1 3
4 4
24 10
1 3
2 3
2 4
1 4
6 8
100 500 300 75
1 3
1 4
3 6
4 5
3 5
4 6
2 5
2 6
7 7
90 1000 700 2000 800
1 3
1 4
1 5
3 7
5 6
2 6
3 6
0 0
0
24
800
700
提示
翻译由 DeepSeek V3.2 完成