CF1987E.Wonderful Tree!
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
神赐福于这个 ArrayForces!
一个随机的鹅卵石
给定一棵有 n 个结点的树,根节点为 1。第 i 个结点上写有一个整数 ai。
设 L 为结点 v 的所有直接子节点的集合。若对于所有 L 非空的结点 v,都有 av≤∑u∈Lau,则称这棵树是“美妙的”。每次操作,你可以选择任意一个结点 v,将 av 增加 1。
请你求出最少需要多少次操作,才能使给定的树变为美妙的。
∗ 结点 u 被称为结点 v 的直接子节点,当且仅当:
- u 和 v 之间有一条边,并且
- v 在从 u 到树根的唯一路径上。
输入格式
每组测试数据包含多组测试用例。输入的第一行包含一个整数 t(1≤t≤1000),表示测试用例的数量。
每组测试用例的第一行包含一个整数 n(2≤n≤5000),表示树的结点数。
第二行包含 n 个整数 a1,a2,…,an(0≤ai≤109),表示每个结点初始时写的值。
第三行包含 n−1 个整数 p2,p3,…,pn(1≤pi<i),表示存在一条从结点 pi 到结点 i 的边。保证给定的边能够构成一棵树。
保证所有测试用例中 n 的总和不超过 5000。
输出格式
对于每组测试用例,输出一个整数,表示将树变为美妙的最少操作次数。
输入输出样例
输入#1
4 5 9 3 4 1 2 1 1 3 3 2 5 3 1 2 36 54 1 3 0 0 0 1 2
输出#1
3 2 0 0
说明/提示
第一个测试用例中的树结构如下:

你可以对结点 5 操作一次,对结点 2 操作两次,使得树变为美妙的。
在第二个测试用例中,你可以对结点 2 操作两次,使得树变为美妙的。
在第三和第四个测试用例中,树本身已经是美妙的,因此不需要进行任何操作。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?