CF2062D.Balanced Tree

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

给定一棵包含 nn 个节点的树 ∗^{\text{∗}},每个节点 ii 有取值范围 [li,ri][l_i, r_i]。你可以为第 ii 个节点选择一个初始值 aia_i 满足 li≤ai≤ril_i \le a_i \le r_i。当所有节点值相等时,该树称为平衡树,其值定义为任意节点的值。

每次操作中,你可以选择两个节点 uu 和 vv,在以 uu 为根的整棵树结构下,将节点 vv 的子树 †^{\text{†}} 中所有节点的值增加 11。注意 uu 可以与 vv 相同。

你的目标是通过若干次操作使树变为平衡状态。求操作完成后树的最小可能值(无需最小化操作次数)。

∗^{\text{∗}} 树是一个无环的连通图。

†^{\text{†}} 在以 uu 为根时,若从根 uu 到节点 ww 的所有路径都必须经过节点 vv,则称 ww 属于 vv 的子树。

输入格式

第一行输入包含一个整数 tt(1≤t≤1051 \leq t \leq 10^5)——测试用例数量。

每个测试用例:

  • 第一行包含一个整数 nn(1≤n≤2⋅1051 \le n \le 2 \cdot 10^5)——树的节点数。
  • 接下来 nn 行,第 ii 行包含两个整数 li,ril_i, r_i(0≤li≤ri≤1090 \le l_i \le r_i \le 10^9)——第 ii 个节点的取值范围。
  • 接下来 n−1n-1 行描述树的边。第 ii 行包含两个整数 ui,viu_i, v_i(1≤ui,vi≤n1 \le u_i, v_i \le n,ui≠viu_i \neq v_i)——连接 uiu_i 和 viv_i 的边。保证输入构成一棵树。

保证所有测试用例的 nn 之和不超过 2⋅1052 \cdot 10^5。

输出格式

对于每个测试用例,输出一个整数——操作完成后所有 aia_i 可达到的相等值的最小可能值。可以证明答案总是存在。

输入输出样例

  • 输入#1

    6
    4
    0 11
    6 6
    0 0
    5 5
    2 1
    3 1
    4 3
    7
    1 1
    0 5
    0 5
    2 2
    2 2
    2 2
    2 2
    1 2
    1 3
    2 4
    2 5
    3 6
    3 7
    4
    1 1
    1 1
    1 1
    0 0
    1 4
    2 4
    3 4
    7
    0 20
    0 20
    0 20
    0 20
    3 3
    4 4
    5 5
    1 2
    1 3
    1 4
    2 5
    3 6
    4 7
    5
    1000000000 1000000000
    0 0
    1000000000 1000000000
    0 0
    1000000000 1000000000
    3 2
    2 1
    1 4
    4 5
    6
    21 88
    57 81
    98 99
    61 76
    15 50
    23 67
    2 1
    3 2
    4 3
    5 3
    6 4

    输出#1

    11
    3
    3
    5
    3000000000
    98

说明/提示

第一个测试用例中,可以选择 a=[6,6,0,5]a = [6, 6, 0, 5]。

通过以下操作使所有 aia_i 相等:

  1. 选择 u=4u=4,v=3v=3,执行该操作 55 次。
  2. 选择 u=1u=1,v=3v=3,执行该操作 66 次。

完整过程如下(括号内数字为 aa 的元素):

可以证明这是最优解。

翻译由 DeepSeek R1 完成

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

首页