loj#P6383. 「是男人就过8题——Pony.ai」PerfectNPArray

「是男人就过8题——Pony.ai」PerfectNPArray

题目描述

我们定义满足如下条件的数列是完美的:

  • 1-111 组成。
  • 它的任一前缀和都不小于 00
  • 数列的各项和为 00

下面列出一些完美的数列作为例子:

  • 1,1,1,1,1,11, 1, 1, -1, -1, -1
  • 1,1,1,1,1,11,-1,1,1,-1,-1

而如下的数列则不完美:

  • 1,1-1,1
  • 1,1,1,11,-1,-1,1

一个完美数列的 NP 值是这个数列的前缀和中最大的那个的值。比如,前文提到的两个完美数列的 NP 值分别为 3322

给一棵树,这棵树的每个节点都被赋予了一个权值 1-111 ,请找出一条简单路径,使得由这个路径上各点权值组成的数列是完美数列,且这个数列的 NP 值最大。

输入格式

输入包含多个测试数据。

每个测试数据第一行是一个整数 nn ,代表这棵树有 nn 个节点。

接下来有 nn 行,第 ii 行有两个用空格分开的数字 fif_iviv_i (vi{1,1}v_i \in \{-1,1\}) ,表示第 ii 个点的父节点和第 ii 个点的权值。节点被编号为 11nn ,如果 fi=0f_i=0 ,那么节点 ii 是这棵树的根。

输出格式

对于每个测试数据,输出每棵树的最大 NP 值,如果这样的路径不存在,输出 00

5
0 -1
1 1
1 -1
2 1
2 -1
2

数据范围与提示

对于 100%100\% 的数据, 1n1061 \leq n \leq 10^6 ,且每个测试点所有测试数据的 nn 的总和不会超过 5×1065 \times 10^6

特别鸣谢楼天城和吉如一提供试题,数据。