CF2101E.Kia Bakes a Cake

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

给定一个长度为 nn 的二进制字符串 ss 和一棵包含 nn 个顶点的树 TT。设 kk 为 ss 中字符 1\mathtt{1} 的数量。我们将按照以下规则构造一个包含 kk 个顶点的完全无向加权图:

  • 对于每个满足 si=1s_i = \mathtt{1} 的 1≤i≤n1 \le i \le n,创建一个标记为 ii 的顶点。
  • 对于在上述步骤中创建的任意两个标记为 uu 和 vv 的顶点,定义它们之间的边权 w(u,v)w(u, v) 为顶点 uu 和顶点 vv 在树 TT 中的距离 ∗^{\text{∗}}。

一个依次访问标记为 v1,v2,…,vmv_1, v_2, \ldots, v_m 的顶点的简单路径 †^{\text{†}} 被称为"优美的",如果对于所有 1≤i≤m−21 \le i \le m - 2,满足条件 2⋅w(vi,vi+1)≤w(vi+1,vi+2)2 \cdot w(v_i, v_{i + 1}) \le w(v_{i + 1}, v_{i + 2})。换句话说,路径中每条边的权值必须至少是前一条边权值的两倍。注意对于所有 1≤i≤m1 \le i \le m,必须满足 svi=1s_{v_i} = \mathtt{1},否则将不存在对应标记的顶点。

对于完全无向加权图中每个标记为 ii 的顶点(1≤i≤n1 \le i \le n 且 si=1s_i = \mathtt{1}),确定从该顶点出发的所有优美简单路径中包含顶点的最大数量。

∗^{\text{∗}} 树中两个顶点 aa 和 bb 之间的距离等于顶点 aa 和顶点 bb 之间唯一简单路径上的边数。

†^{\text{†}} 路径是指顶点序列 v1,v2,…,vmv_1, v_2, \ldots, v_m,其中对于所有 1≤i≤m−11 \le i \le m - 1,viv_i 和 vi+1v_{i + 1} 之间存在一条边。简单路径是指没有重复顶点的路径,即对于所有 1≤i<j≤m1 \le i < j \le m,vi≠vjv_i \neq v_j。

输入格式

每个测试包含多个测试用例。第一行输入测试用例数量 tt(1≤t≤1041 \le t \le 10^4)。接下来是各测试用例的描述。

每个测试用例的第一行包含一个整数 nn(1≤n≤7⋅1041 \le n \le 7 \cdot 10^4)——二进制字符串 ss 的长度和树 TT 的顶点数。

第二行包含一个由 nn 个字符组成的二进制字符串 s1s2…sns_1s_2\ldots s_n(si∈{0,1}s_i \in \{\mathtt{0}, \mathtt{1}\})——表示要在完全无向加权图中构造顶点的字符串。

接下来的 n−1n - 1 行,每行包含两个整数 uu 和 vv(1≤u,v≤n1 \le u, v \le n)——树 TT 的边的端点。

保证给定的边构成一棵树。

保证所有测试用例的 nn 之和不超过 7⋅1047 \cdot 10^4。

输出格式

对于每个测试用例,输出 nn 个整数,第 ii 个整数表示从标记为 ii 的顶点出发的所有优美简单路径中包含顶点的最大数量。如果不存在标记为 ii 的顶点(即 si=0s_i = \mathtt{0}),则输出 −1-1。

输入输出样例

  • 输入#1

    3
    5
    01111
    1 2
    2 3
    3 4
    4 5
    17
    01101011110101101
    1 2
    2 3
    3 4
    4 5
    5 6
    6 7
    7 8
    8 9
    9 10
    10 11
    11 12
    12 13
    13 14
    14 15
    15 16
    16 17
    2
    01
    1 2

    输出#1

    -1 3 3 3 3 
    -1 5 4 -1 4 -1 5 5 5 5 -1 4 -1 5 5 -1 3 
    -1 1

说明/提示

在第一个测试用例中,树 TT 和构造的图如下所示:

左侧是树 TT,选中的节点标记为黄色。右侧是构造的完全图。图中展示的优美路径是 3→4→23\rightarrow 4\rightarrow 2。该路径是优美的,因为 w(4,2)=2w(4, 2) = 2 至少是 w(3,4)=1w(3, 4) = 1 的两倍。尝试用 2→52\rightarrow 5 扩展路径是不可行的,因为 w(2,5)=3w(2, 5) = 3 小于 w(4,2)=2w(4, 2) = 2 的两倍。

在第二个测试用例中,树 TT 是一条长度为 1717 的简单路径。从标记为 22 的顶点出发的一个优美路径示例是 2→3→5→9→172\rightarrow 3\rightarrow 5\rightarrow 9\rightarrow 17,其边权依次为 1,2,4,81, 2, 4, 8,每次翻倍。

翻译由 DeepSeek V3 完成

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

首页