CF1987E.Wonderful Tree!

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

神赐福于这个 ArrayForces!

一个随机的鹅卵石

给定一棵有 nn 个结点的树,根节点为 11。第 ii 个结点上写有一个整数 aia_i。

设 LL 为结点 vv 的所有直接子节点的集合。若对于所有 LL 非空的结点 vv,都有 av≤∑u∈Laua_v \le \sum_{u \in L} a_u,则称这棵树是“美妙的”。每次操作,你可以选择任意一个结点 vv,将 ava_v 增加 11。

请你求出最少需要多少次操作,才能使给定的树变为美妙的。

∗^{\text{∗}} 结点 uu 被称为结点 vv 的直接子节点,当且仅当:

  • uu 和 vv 之间有一条边,并且
  • vv 在从 uu 到树根的唯一路径上。

输入格式

每组测试数据包含多组测试用例。输入的第一行包含一个整数 tt(1≤t≤10001 \le t \le 1000),表示测试用例的数量。

每组测试用例的第一行包含一个整数 nn(2≤n≤50002 \le n \le 5000),表示树的结点数。

第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(0≤ai≤1090 \le a_i \le 10^9),表示每个结点初始时写的值。

第三行包含 n−1n-1 个整数 p2,p3,…,pnp_2, p_3, \ldots, p_n(1≤pi<i1 \le p_i < i),表示存在一条从结点 pip_i 到结点 ii 的边。保证给定的边能够构成一棵树。

保证所有测试用例中 nn 的总和不超过 50005000。

输出格式

对于每组测试用例,输出一个整数,表示将树变为美妙的最少操作次数。

输入输出样例

  • 输入#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

说明/提示

第一个测试用例中的树结构如下:

你可以对结点 55 操作一次,对结点 22 操作两次,使得树变为美妙的。

在第二个测试用例中,你可以对结点 22 操作两次,使得树变为美妙的。

在第三和第四个测试用例中,树本身已经是美妙的,因此不需要进行任何操作。

由 ChatGPT 4.1 翻译

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

首页