310593: CF1856E2. PermuTree (hard version)

Memory Limit:512 MB Time Limit:3 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

E2. PermuTree (hard version)time limit per test3 secondsmemory limit per test512 megabytesinputstandard inputoutputstandard output

This is the hard version of the problem. The differences between the two versions are the constraint on $n$ and the time limit. You can make hacks only if both versions of the problem are solved.

You are given a tree with $n$ vertices rooted at vertex $1$.

For some permutation$^\dagger$ $a$ of length $n$, let $f(a)$ be the number of pairs of vertices $(u, v)$ such that $a_u < a_{\operatorname{lca}(u, v)} < a_v$. Here, $\operatorname{lca}(u,v)$ denotes the lowest common ancestor of vertices $u$ and $v$.

Find the maximum possible value of $f(a)$ over all permutations $a$ of length $n$.

$^\dagger$ A permutation of length $n$ is an array consisting of $n$ distinct integers from $1$ to $n$ in arbitrary order. For example, $[2,3,1,5,4]$ is a permutation, but $[1,2,2]$ is not a permutation ($2$ appears twice in the array), and $[1,3,4]$ is also not a permutation ($n=3$ but there is $4$ in the array).

Input

The first line contains a single integer $n$ ($2 \le n \le 10^6$).

The second line contains $n - 1$ integers $p_2,p_3,\ldots,p_n$ ($1 \le p_i < i$) indicating that there is an edge between vertices $i$ and $p_i$.

Output

Output the maximum value of $f(a)$.

ExamplesInput
5
1 1 3 3
Output
4
Input
2
1
Output
0
Input
6
1 2 2 1 5
Output
7
Input
4
1 1 1
Output
2
Note

The tree in the first test:

One possible optimal permutation $a$ is $[2, 1, 4, 5, 3]$ with $4$ suitable pairs of vertices:

  • $(2, 3)$, since $\operatorname{lca}(2, 3) = 1$ and $1 < 2 < 4$,
  • $(2, 4)$, since $\operatorname{lca}(2, 4) = 1$ and $1 < 2 < 5$,
  • $(2, 5)$, since $\operatorname{lca}(2, 5) = 1$ and $1 < 2 < 3$,
  • $(5, 4)$, since $\operatorname{lca}(5, 4) = 3$ and $3 < 4 < 5$.

The tree in the third test:

The tree in the fourth test:

Output

题目大意:给定一棵有n个顶点的树,根节点为1。对于长度为n的某个排列a,定义f(a)为满足au < a_{lca}(u, v) < av的顶点对(u, v)的数量。这里,lca(u,v)表示顶点u和v的最低公共祖先。求所有长度为n的排列a中f(a)的最大可能值。

输入数据格式:第一行包含一个整数n(2≤n≤10^6)。第二行包含n-1个整数p2,p3,…,pn(1≤pi
输出数据格式:输出f(a)的最大值。

注意:排列a是包含n个不同的从1到n的整数的数组,数组中的数字可以任意排列。例如,[2,3,1,5,4]是一个排列,但[1,2,2]不是排列(数组中2出现了两次),[1,3,4]也不是排列(n=3,但数组中有4)。题目大意:给定一棵有n个顶点的树,根节点为1。对于长度为n的某个排列a,定义f(a)为满足au < a_{lca}(u, v) < av的顶点对(u, v)的数量。这里,lca(u,v)表示顶点u和v的最低公共祖先。求所有长度为n的排列a中f(a)的最大可能值。 输入数据格式:第一行包含一个整数n(2≤n≤10^6)。第二行包含n-1个整数p2,p3,…,pn(1≤pi

加入题单

上一题 下一题 算法标签: