#P16021. [ICPC 2021 NAC] The King' s Guards
[ICPC 2021 NAC] The King' s Guards
题目描述
在某个王国中,国王希望部署守卫来保护他的子民。他招募了若干名守卫,并为他们配备了重甲,以抵御强盗、外邦骑士以及其他不法之徒。他的守卫虽然勇猛,但遗憾的是他们并不聪明,会攻击任何穿着盔甲的人,甚至包括其他守卫!
王国由若干村庄组成,村庄之间由道路相连。所有道路的质量都很差,有些泥泞不堪,有些桥梁摇摇欲坠。没有一条道路能承受身着全副盔甲的守卫通行。因此,国王必须决定修缮哪些道路,以便他的守卫能够抵达整个王国。道路是双向的。每名守卫只能被部署到王国中某个特定子集的村庄中。
国王需要在满足以下若干约束条件的前提下,最小化修缮道路的总成本:
- 每名守卫都必须被部署,不能有守卫闲置。
- 每名守卫必须被部署到其允许部署的村庄子集内。
- 每个村庄必须恰好被一名守卫所覆盖(即可以到达)。如果有两名守卫能够互相到达,他们就会发生冲突。
请帮助国王确定在满足上述约束条件的前提下,修缮道路所需的最小总成本。
输入格式
输入的第一行包含三个整数 ()、()和 (),其中 是村庄的数量, 是道路的数量, 是守卫的数量。村庄的编号为 到 。
接下来的 行,每行包含三个整数 、()和 ()。每行描述一条连接村庄 和村庄 的道路,修缮该道路的成本为 。这些道路是双向的,守卫可以从 走到 或从 走到 。每对村庄之间至多有一条道路。
接下来的 行,每行首先有一个整数 (),随后跟着 个整数 ()。每行描述某一名守卫可以被部署的村庄子集。不同守卫的子集之间可能有重叠。
输出格式
输出一个整数,表示国王为了满足所有约束条件而需要修缮的道路的最小总成本。如果无法以任何方式部署守卫使得所有约束同时满足,则输出 。
5 6 2
1 2 1
1 3 4
2 4 2
2 5 5
3 4 7
4 5 3
2 1 2
2 2 4
8
提示
翻译由 DeepSeek V3.2 完成