#P17307. [ICPC 2026 Xi'an I] Zebra Crossing

    ID: 19717 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 显示难度省选/NOI− 上传者: 标签>模拟贪心广度优先搜索 BFS树形 DPICPC2026省赛/邀请赛西安

[ICPC 2026 Xi'an I] Zebra Crossing

题目描述

Yuki 的面前有一条奇怪的斑马线。

这条斑马线可以看作一棵包含 nn 个结点的树,第 ii 条边连接结点 uiu_i 与结点 viv_i,每个结点的颜色为黑色或白色,用一个长度为 nn 的 01\texttt{01} 串 ss 描述:

  • 若 si=0s_i = \texttt{0},则结点 ii 的颜色为黑色。
  • 若 si=1s_i = \texttt{1},则结点 ii 的颜色为白色。

Yuki 有一个跳跃能力 kk,表示当她位于结点 xx 时,她可以通过一次跳跃,移动到任意一个满足 dist(x,y)≤k\text{dist}(x, y) \le k 的结点 yy 上。其中,dist(x,y)\text{dist}(x, y) 表示结点 xx 到结点 yy 的简单路径上的边的数量。

接下来,Yuki 会在斑马线上进行 n−1n-1 轮跳跃。在第 ii 轮跳跃中,Yuki 初始时位于结点 11,她希望通过若干次跳跃恰好移动到结点 i+1i+1。同时,Yuki 希望最小化她跳跃后踩到黑色结点的次数。

你需要帮助 Yuki 求出,每一轮跳跃中 Yuki 跳跃后踩到黑色结点的次数的最小值。

输入格式

本题包含多组测试数据。

第一行包含一个正整数 tt (1≤t≤105)(1 \le t \le 10^5),表示测试数据组数。

对于每组测试数据:

  • 第一行包含两个正整数 n,kn, k (1≤n≤5⋅105, 1≤k≤n)(1 \le n \le 5\cdot10^5,\ 1 \le k \le n)。
  • 第二行包含一个长度为 nn 的 01\texttt{01} 串 ss (si∈{0,1})(s_i \in \{\texttt0,\texttt1\})。
  • 接下来 n−1n-1 行,第 ii 行包含两个正整数 ui,viu_i, v_i (1≤ui,vi≤n, ui≠vi)(1 \le u_i, v_i \le n,\ u_i \ne v_i)。

保证所有测试数据中 nn 的总和不超过 5⋅1055\cdot10^5。

输出格式

对于每组测试数据,输出一行,包含 n−1n-1 个整数,第 ii 个整数表示第 ii 轮跳跃中 Yuki 跳跃后踩到黑色结点的次数的最小值。

2
5 1
01010
3 5
2 1
1 3
3 4
9 3
100010000
1 2
2 3
2 4
3 5
3 6
4 7
6 8
7 9
0 1 1 2
1 1 1 0 1 1 1 2

提示

对于第 11 组测试数据:

  • 对于第 11 轮跳跃,一种满足要求的方案中经过的点依次为 1,21,2。
  • 对于第 44 轮跳跃,一种满足要求的方案中经过的点依次为 1,3,51,3,5。

对于第 22 组测试数据:

  • 对于第 44 轮跳跃,一种满足要求的方案中经过的点依次为 1,51,5。
  • 对于第 77 轮跳跃,一种满足要求的方案中经过的点依次为 1,5,81,5,8。
  • 对于第 88 轮跳跃,一种满足要求的方案中经过的点依次为 1,4,91,4,9。