AT_agc023_f.[AGC023F] 01 on Tree

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

すぬけ君有一棵包含 NN 个节点的有根树。每个节点编号为 11 到 NN,节点 11 是树的根。对于每个节点 ii(2≤i≤N2 \leq i \leq N),其父节点为 PiP_i(Pi<iP_i < i)。每个节点上写有 00 或 11,节点 ii 上写的数字为 ViV_i。

すぬけ君想要将这棵树的所有节点排成一行。排列时,要求对于任意一个节点,其所有祖先节点都必须排在它的左侧。

排列完成后,按照节点排列顺序,将每个节点上的数字依次写成一个数列 XX。すぬけ君希望使 XX 的逆序对数(※)最小。请你求出 XX 的逆序对数的最小值。

输入格式

输入通过标准输入给出,格式如下:

NN P2P_2 P3P_3 ⋯\cdots PNP_N V1V_1 V2V_2 ⋯\cdots VNV_N

输出格式

请输出数列 XX 的最小逆序对数。

输入输出样例

  • 输入#1

    6
    1 1 2 3 3
    0 1 1 0 0 0

    输出#1

    4
  • 输入#2

    1
    
    0

    输出#2

    0
  • 输入#3

    15
    1 2 3 2 5 6 2 2 9 10 1 12 13 12
    1 1 1 0 1 1 0 0 1 0 0 1 1 0 0

    输出#3

    31

说明/提示

注释

对于长度为 NN 的数列 ZZ,其逆序对数定义为满足 1≤i<j≤N1 \leq i < j \leq N 且 Zi>ZjZ_i > Z_j 的整数对 (i,j)(i, j) 的个数。

数据范围

  • 1≤N≤2×1051 \leq N \leq 2 \times 10^5
  • 1≤Pi<i1 \leq P_i < i(2≤i≤N2 \leq i \leq N)
  • 0≤Vi≤10 \leq V_i \leq 1(1≤i≤N1 \leq i \leq N)
  • 所有输入均为整数。

样例解释 1

如果将节点按 1, 3, 5, 6, 2, 41,\ 3,\ 5,\ 6,\ 2,\ 4 的顺序排列,则 X=(0,1,0,0,1,0)X = (0, 1, 0, 0, 1, 0),其逆序对数为 44。无法再使逆序对数更小,因此输出 44。

样例解释 2

X=(0)X = (0),逆序对数为 00。

由 ChatGPT 4.1 翻译

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

首页