CF1997D.Maximize the Root

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

给你一棵有根的树,由 nn 个顶点组成。树上的顶点从 11到 nn 编号,根是顶点 11 。第 ii 个顶点上的值为 aia_i。

你可以执行以下操作任意次(可以为零次):选择一个至少有一个子顶点的顶点 vv; 将 ava_v 增加 11 并且对于 vv 的子树中的所有顶点 uu 将 aua_u 减少 11 (除了 vv 本身)。但是,在每次操作之后,所有顶点上的值都应该是非负的。

你的任务是使用前面提到的运算来计算写在根上的最大可能值。

输入格式

第一行包含一个整数 t(1≤t≤104)t(1 \le t \le 10^4) 表示测试用例的数量。

每个测试用例的第一行为一个整数 n(2≤n≤2×105)n (2 \le n \le 2 \times 10^5) 表示树中顶点的数量。

第二行包含 nn 整数 $ a_1, a_2, \dots, a_n $ ( $ 0 \le a_i \le 10^9 $ ) 表示每个点的初始值。

第三行包含 n−1n - 1 整数 $ p_2,p_3,\dots,p_n (1 \le p_i \le n)$,其中 pip_i 是树中第 ii 个顶点的父顶点。顶点 11 是根。

对输入的附加约束:所有测试用例的 nn 之和不超过 $ 2 \times 10^5 $。

输出格式

对于每个测试用例,输出一个整数——使用前面提到的操作在根上写出的最大可能值。

输入输出样例

  • 输入#1

    3
    4
    0 1 0 2
    1 1 3
    2
    3 0
    1
    5
    2 5 3 9 6
    3 1 5 2

    输出#1

    1
    3
    6

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

首页