题目 20015

圣诞树彩球

查看题解 ↗GitHub ↗如何评测
题号
20015
时间限制
2000 ms
内存限制
1024 MB
标签
比赛树贪心
来源
2026 普及模拟赛 1 - E

时空限制

时间限制 2s2\text{s},内存限制 1024MB1024\text{MB}。

题目描述

圣诞节到了,小 Z 在圣诞树上挂满了彩球。

圣诞树一共有 nn 个节点,由 n−1n-1 条边进行连接,小 Z 在圣诞树的每个节点上都挂上了恰好一个彩球,其中第 ii 个节点上挂的彩球的美丽值为 aia_i。

小 Z 的幸运数字是 kk,因此小 Z 想把整棵圣诞树分成若干部分,每部分为树上的一个联通块,把其中每个彩球美丽值之和恰好为 kk 的联通块当作礼物送给他的朋友们。

小 Z 想知道他至多可以送出多少份礼物。

以下给出一份形式化的题意:

给定一棵 nn 个点的树和定值 kk,第 ii 个点的点权为 aia_i。

选出尽可能多的联通块,使得每个联通块之间的点不存在交集,且每个联通块内所有点的点权和恰为 kk。

输出可以选择的最多的联通块个数。

输入描述

第一行一个正整数 TT,表示数据组数,之后对于每组数据:

第一行给定两个整数 n,kn,k。

第二行给定 nn 个非负整数 a1,a2,...,ana_1,a_2,...,a_n。

之后 n−1n-1 行,每行给定两个整数 u,vu,v,表示树上的一条边。

输出格式

输出 TT 行,每行一个整数,表示答案。

样例输入1

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

样例输出1

2
0
1
0

样例解释1

对于第一组数据,选择的联通块分别为 {5,6,7},{2,3,4}\{5,6,7\},\{2,3,4\}。

样例输入2,3

见下发文件。

样例输出2,3

见下发文件。

数据范围

对于 30%30\% 的数据,1≤∑i=1Tni≤200,1≤n≤201 \leq \sum_{i=1}^T n_i \leq 200,1 \leq n \leq 20。

对于 60%60\% 的数据,1≤∑i=1Tni≤104,1≤n≤10001 \leq \sum_{i=1}^T n_i \leq 10^4,1 \leq n \leq 1000。

对于 100%100\% 的数据,1≤∑i=1Tni≤106,1≤k≤106,0≤ai≤21 \leq \sum_{i=1}^T n_i \leq 10^6,1 \leq k \leq 10^6,0 \leq a_i \leq 2。

下发数据

数据下载

题目 20015 的公开数据

正在读取文件列表…

常用命令

题目 20015 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。