CF1249F Maximum Weight Subset

题目描述

给定一棵包含 $n$ 个顶点的树。树是一个无环连通无向图。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1249F/0b019d9da08990633b2a6779b2699db8afb883d7.png) 树的示例。顶点编号为 $1$ 到 $n$。每个顶点都有一个权值,顶点 $v$ 的权值为 $a_v$。 在树中,两个顶点之间的距离定义为它们之间简单路径上的边数。 你的任务是找到一个顶点子集,使得该子集的总权值最大,并且子集中任意两点之间的距离都大于 $k$。

输入格式

输入的第一行包含两个整数 $n$ 和 $k$($1 \le n, k \le 200$),分别表示树的顶点数和距离限制。 第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \le a_i \le 10^5$),其中 $a_i$ 表示第 $i$ 个顶点的权值。 接下来的 $n-1$ 行,每行包含两个整数 $u_i$ 和 $v_i$,表示树中的一条边,连接顶点 $u_i$ 和 $v_i$($1 \le u_i, v_i \le n$,$u_i \ne v_i$)。 保证所给的边构成一棵树。

输出格式

输出一个整数,表示所选子集的最大总权值,且子集中任意两点之间的距离都大于 $k$。

说明/提示

由 ChatGPT 4.1 翻译