CF1425I.Impressive Harvesting of The Orchard

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

Chanek 先生有一个果园,这个果园的结构是一棵有根三叉树,共有 NN 个顶点,编号从 11 到 NN。树的根为顶点 11。对于 2≤i≤N2 \le i \le N,PiP_i 表示顶点 ii 的父节点。值得注意的是,这棵树的高度不超过 1010。树的高度定义为从根节点到树中某个顶点的最大距离。

树上的每个顶点上都长有一棵灌木。初始时,所有灌木上都有果实。已经有果实的灌木不会再长出新的果实。第 ii 个顶点上的灌木在上次采摘后的 AiA_i 天后会再次长出果实。

Chanek 先生将在 QQ 天内多次参观他的果园。第 ii 天,他会在顶点 XiX_i 的子树内采摘所有有果实的灌木。对于每一天,请你计算当天采摘的所有灌木到 XiX_i 的距离之和,以及当天采摘的灌木数量。采摘某个灌木意味着收集该灌木上的所有果实。

例如,如果 Chanek 先生在顶点 XX 的子树内采摘所有果实,采摘的灌木为 [Y1,Y2,…,YM][Y_1, Y_2, \dots, Y_M],那么距离之和为 ∑i=1Mdistance(X,Yi)\sum_{i = 1}^M \text{distance}(X, Y_i)。

树中 distance(U,V)\text{distance}(U, V) 定义为从 UU 到 VV 的简单路径上的边数。

输入格式

第一行包含两个整数 NN 和 QQ,表示顶点数和 Chanek 先生参观果园的天数,1≤N,Q≤5⋅1041 \le N, Q \le 5 \cdot 10^4。

第二行包含 NN 个整数 AiA_i,表示第 ii 个顶点上的灌木从上次采摘后再次长出果实所需的天数,1≤Ai≤5⋅1041 \le A_i \le 5 \cdot 10^4。

第三行包含 N−1N-1 个整数 PiP_i,表示第 ii 个顶点的父节点(2≤i≤N2 \le i \le N),1≤Pi≤N,Pi≠i1 \le P_i \le N, P_i \ne i。保证每个顶点最多有 33 个子节点,且树的高度不超过 1010。

接下来 QQ 行,每行一个整数 XiX_i,表示第 ii 天 Chanek 先生从顶点 XiX_i 开始采摘,1≤Xi≤N1 \le X_i \le N。

输出格式

输出 QQ 行,第 ii 行输出当天采摘的所有灌木到 XiX_i 的距离之和,以及当天采摘的灌木数量。

输入输出样例

  • 输入#1

    2 3
    1 2
    1
    2
    1
    1

    输出#1

    0 1
    0 1
    1 2
  • 输入#2

    5 3
    2 1 1 3 2
    1 2 2 1
    1
    1
    1

    输出#2

    6 5
    3 2
    4 4

说明/提示

对于第一个样例:

  • 第一天,Chanek 先生从顶点 22 开始,只能采摘顶点 22 上的灌木。
  • 第二天,Chanek 先生从顶点 11 开始,只能采摘顶点 11 上的灌木(顶点 22 上的果实还未长出来)。
  • 第三天,Chanek 先生从顶点 11 开始,能采摘顶点 11 和 22 上的果实。所有采摘的灌木到 11 的距离之和为 11。

对于第二个样例,Chanek 先生每天都从顶点 11 开始。第一、二、三天分别采摘的灌木为 [1,2,3,4,5][1, 2, 3, 4, 5]、[2,3][2, 3]、[1,2,3,5][1, 2, 3, 5]。

由 ChatGPT 4.1 翻译

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

首页