以下题面由 AI 翻译。
Byteotian 洞穴由 个洞室和 条连接它们的走廊构成。每对洞室之间都有一条唯一的路径。
某些洞室中装有炸药。
每条走廊中都铺设了引线。每个洞室中相邻走廊的引线交汇于一点,如果该洞室中有炸药,则引线会连接到炸药上。相邻两个洞室之间的引线燃烧需要恰好一个单位时间,炸药在火焰到达其所在洞室的瞬间爆炸。
我们需要在 个洞室中点燃引线(在引线的交汇点),使得所有炸药爆炸的时间尽可能短。请编写程序确定这个最短时间。
第一行包含两个整数 和 ,分别表示洞室数量和允许点燃引线的洞室数量。洞室编号为 到 。
第二行包含 个整数 ,表示各洞室是否有炸药( 表示有, 表示无)。
接下来 行描述洞穴的走廊,每行两个整数 ,表示洞室 和 之间有走廊。
输出一行,表示所有炸药爆炸的最短时间。
7 2 1 0 1 1 0 1 1 1 3 2 3 3 4 4 5 5 6 5 7
1
问题转化:在树上选择 个点燃点,使得所有关键节点(有炸药的洞室)到最近点燃点的距离的最大值最小。该问题可以通过二分答案结合贪心算法解决。