CF375E Red and Black Tree

题目描述

给出一棵 $n$ 个节点的树,树上的节点有红黑两种颜色。每次操作可以交换两个节点的颜色,问最少需要多少次操作可以使得树上任意一个点均存在与它距离 $\leq x$ 的黑点,在这里认为树上两个节点的距离为它们之间的最短路径长度。

输入格式

第一行两个整数 $n,x (2 \leq n \leq 500 , 1 \leq x \leq 10^9)$。 第二行 $n$ 个整数,第 $i$ 个整数描述 $i$ 点的颜色,如果为 $1$ 则其为黑色,如果为 $0$ 则其为红色。 接下来 $n-1$ 行每行三个整数 $u_i,v_i,w_i(1 \leq u_i,v_i \leq n,u_i \leq v_i,1 \leq w_i \leq 10^9)$ 描述树上一条连接 $u_i$ 和 $v_i$ 的权值为 $w_i$ 的边。

输出格式

一行一个整数,如果无论如何操作都无法满足条件输出 `-1`,否则输出最小的操作次数。