CF2062D.Balanced Tree
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一棵包含 n 个节点的树 ∗,每个节点 i 有取值范围 [li,ri]。你可以为第 i 个节点选择一个初始值 ai 满足 li≤ai≤ri。当所有节点值相等时,该树称为平衡树,其值定义为任意节点的值。
每次操作中,你可以选择两个节点 u 和 v,在以 u 为根的整棵树结构下,将节点 v 的子树 † 中所有节点的值增加 1。注意 u 可以与 v 相同。
你的目标是通过若干次操作使树变为平衡状态。求操作完成后树的最小可能值(无需最小化操作次数)。
∗ 树是一个无环的连通图。
† 在以 u 为根时,若从根 u 到节点 w 的所有路径都必须经过节点 v,则称 w 属于 v 的子树。
输入格式
第一行输入包含一个整数 t(1≤t≤105)——测试用例数量。
每个测试用例:
- 第一行包含一个整数 n(1≤n≤2⋅105)——树的节点数。
- 接下来 n 行,第 i 行包含两个整数 li,ri(0≤li≤ri≤109)——第 i 个节点的取值范围。
- 接下来 n−1 行描述树的边。第 i 行包含两个整数 ui,vi(1≤ui,vi≤n,ui=vi)——连接 ui 和 vi 的边。保证输入构成一棵树。
保证所有测试用例的 n 之和不超过 2⋅105。
输出格式
对于每个测试用例,输出一个整数——操作完成后所有 ai 可达到的相等值的最小可能值。可以证明答案总是存在。
输入输出样例
输入#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]。
通过以下操作使所有 ai 相等:
- 选择 u=4,v=3,执行该操作 5 次。
- 选择 u=1,v=3,执行该操作 6 次。
完整过程如下(括号内数字为 a 的元素):

可以证明这是最优解。
翻译由 DeepSeek R1 完成
输入解题思路,AI测评打分。不知道怎么写?