logo AlgoBeat OnlineJudge
登录 注册

#102525. [BZOJ 2525] [Poi2011]Dynamite

内存限制:128 MiB 时间限制:30000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: 匿名

题目描述

以下题面由 AI 翻译。

Byteotian 洞穴由 个洞室和 条连接它们的走廊构成。每对洞室之间都有一条唯一的路径。

某些洞室中装有炸药。

每条走廊中都铺设了引线。每个洞室中相邻走廊的引线交汇于一点,如果该洞室中有炸药,则引线会连接到炸药上。相邻两个洞室之间的引线燃烧需要恰好一个单位时间,炸药在火焰到达其所在洞室的瞬间爆炸。

我们需要在 个洞室中点燃引线(在引线的交汇点),使得所有炸药爆炸的时间尽可能短。请编写程序确定这个最短时间。

输入格式

第一行包含两个整数 ,分别表示洞室数量和允许点燃引线的洞室数量。洞室编号为

第二行包含 个整数 ,表示各洞室是否有炸药( 表示有, 表示无)。

接下来 行描述洞穴的走廊,每行两个整数 ,表示洞室 之间有走廊。

输出格式

输出一行,表示所有炸药爆炸的最短时间。

样例数据

样例

样例输入 #1

7 2
1 0 1 1 0 1 1
1 3
2 3
3 4
4 5
5 6
5 7

样例输出 #1

1

数据范围与提示

  • 对于 的数据,
  • 对于 的数据,
  • 对于 的数据,

问题转化:在树上选择 个点燃点,使得所有关键节点(有炸药的洞室)到最近点燃点的距离的最大值最小。该问题可以通过二分答案结合贪心算法解决。