AT_past19_k 隣接禁止

题目描述

有一棵包含 $N$ 个顶点的树,顶点编号为 $1$ 到 $N$。第 $i$ 条边连接顶点 $u_i$ 和顶点 $v_i$,且为无向边。在顶点 $i$ 上写有整数 $A_i$。 请判断是否存在一种方法,从这 $N$ 个顶点中选择 $K$ 个顶点,使得选出的任意两个顶点都不是相邻的。如果存在,请求出所选 $K$ 个顶点上的整数之和的最大值。

输入格式

输入从标准输入读入,格式如下: > $N$ $K$ $u_1$ $v_1$ ⋮ $u_{N-1}$ $v_{N-1}$ $A_1$ $A_2$ ⋯ $A_N$

输出格式

如果不存在满足条件的选法,输出 $-1$。如果存在,输出所选 $K$ 个顶点上整数之和的最大值。

说明/提示

### 样例解释 1 最优的做法是选择顶点 $3$ 和顶点 $5$。 ### 样例解释 3 不存在满足条件的选法。 ### 数据范围 - $2\leq N\leq 100$ - $1\leq K \leq N$ - $1\leq u_i,v_i\leq N$ - $1\leq A_i \leq 100$ - 输入的图是一棵树。 - 所有输入数值均为整数。 由 ChatGPT 5 翻译