AT_past19_k.隣接禁止

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有一棵包含 NN 个顶点的树,顶点编号为 11 到 NN。第 ii 条边连接顶点 uiu_i 和顶点 viv_i,且为无向边。在顶点 ii 上写有整数 AiA_i。

请判断是否存在一种方法,从这 NN 个顶点中选择 KK 个顶点,使得选出的任意两个顶点都不是相邻的。如果存在,请求出所选 KK 个顶点上的整数之和的最大值。

输入格式

输入从标准输入读入,格式如下:

NN KK
u1u_1 v1v_1
⋮
uN−1u_{N-1} vN−1v_{N-1}
A1A_1 A2A_2 ⋯ ANA_N

输出格式

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

输入输出样例

  • 输入#1

    5 2
    1 2
    2 3
    1 4
    2 5
    3 1 4 1 5

    输出#1

    9
  • 输入#2

    10 6
    7 3
    3 8
    5 1
    3 9
    2 5
    6 1
    5 4
    10 7
    7 1
    1 3 10 6 7 9 2 2 10 4

    输出#2

    34
  • 输入#3

    10 6
    2 10
    1 10
    7 4
    8 9
    8 7
    4 3
    1 4
    6 7
    5 3
    2 5 1 2 3 6 2 9 9 7

    输出#3

    -1

说明/提示

样例解释 1

最优的做法是选择顶点 33 和顶点 55。

样例解释 3

不存在满足条件的选法。

数据范围

  • 2≤N≤1002\leq N\leq 100
  • 1≤K≤N1\leq K \leq N
  • 1≤ui,vi≤N1\leq u_i,v_i\leq N
  • 1≤Ai≤1001\leq A_i \leq 100
  • 输入的图是一棵树。
  • 所有输入数值均为整数。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页