#P710. CFF炸药

CFF炸药

题目描述

CFF 山洞由 nn 个洞穴和连接这些洞穴的 n1n-1 条过道组成。对于每一对洞穴,从一个洞穴到达另一个都有唯一的路径,并且不需要离开山洞。也就是说,山洞的结构是一棵树。

某些洞穴中放置了炸药。每条过道中都放了引线。在每个洞穴中,相邻过道的引线交于一点,如果该洞穴中有炸药,那么引线会与炸药相连。任意相邻两个洞穴之间的引线燃尽都恰好需要一单位时间。一旦火传到有炸药的洞穴,炸药会立即爆炸。

现在我们可以在 mm 个洞穴的引线交点处同时点火。希望引线引燃后,所有炸药在尽可能短的时间内全部爆炸。请你编写一个程序,求出这个最小可能时间。

输入格式

第一行包含两个整数 n,mn, m,分别表示山洞中洞穴的个数和允许点火的洞穴数量。

第二行包含 nn 个整数 d1,d2,,dnd_1, d_2, \dots, d_ndid_i11 表示第 ii 个洞穴中有炸药,did_i00 表示没有。

接下来 n1n-1 行,每行两个整数 a,ba, b,表示一条过道连接洞穴 aa 和洞穴 bb

输出格式

一行一个整数,表示引爆所有炸药所需的最短时间。

样例

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

样例解释
山洞结构是一条链 12345671 - 2 - 3 - 4 - 5 - 6 - 7,其中洞穴 1,3,4,6,71, 3, 4, 6, 7 有炸药。可以点火 m=2m=2 个洞穴。
一种最优方案是在洞穴 33 和洞穴 55 点火:

  • 洞穴 33 的炸药在时间 00 时直接引爆。
  • 火从洞穴 33 沿过道向两边传播:11 单位时间后到达洞穴 2244,引爆洞穴 44 的炸药,同时火从洞穴 55 向两边传播引爆洞穴 66 等。
  • 所有炸药在时间 11 后全部引爆。
    可以证明无法在更短时间内引爆所有炸药,因此答案是 11

数据范围

  • 对于所有数据:1mn3×1051 \le m \le n \le 3 \times 10^5di{0,1}d_i \in \{0, 1\}1a,bn1 \le a, b \le n
  • 对于 10%10\% 的分数:n10n \le 10
  • 对于 40%40\% 的分数:n103n \le 10^3

来源

POI 2011 改编题目