#P8260. [CTS2022] 燃烧的呐球

[CTS2022] 燃烧的呐球

背景

警告:滥用本题卡评测者将被封号。

题目描述

已知 nn 个顶点的有根树,以及 mm 个二元组 (xi,yi)(x_i,y_i),其中 xi,yix_i,y_i 是树的顶点。

对于树的顶点 a,ba,b,定义 D(a,b)D(a,b) 为:在以 aa 为根的子树中,但不在以 bb 为根的子树中的顶点个数。

你需要求出以这些二元组为顶点的完全图的最小生成树,其中 (xi,yi)(x_i,y_i) 和 (xj,yj)(x_j,y_j) 之间的边权是 D(xi,xj)+D(xj,xi)+D(yi,yj)+D(yj,yi)D(x_i,x_j)+D(x_j,x_i)+D(y_i,y_j)+D(y_j,y_i)。

输入格式

第一行两个数表示 n,mn,m。

之后一行 n−1n-1 个数,其中第 ii 个数表示编号为 i+1i+1 的节点的父亲 fi+1f_{i+1},保证 fi+1<i+1f_{i+1}< i+1。

之后 mm 行,第 ii 行两个数 xi,yix_i,y_i,表示一个给定的二元组。

输出格式

输出一个整数,表示最小生成树的边权和。

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

7

提示

样例解释:

最小生成树包含边 (1,4,1),(2,3,3),(2,4,3)(1,4,1),(2,3,3),(2,4,3),三元组表示第一个二元组的编号,第二个二元组的编号,边权。边权和为 77。

数据范围:

对于 10%10\% 的数据,满足 1≤n,m≤10001\le n,m\le 1000。

对于另外 10%10\% 的数据,满足 1≤m≤2×1041\le m\le 2\times 10^4。

对于另外 10%10\% 的数据,满足 1≤m≤5×1041\le m\le 5\times 10^4。

对于另外 20%20\% 的数据,满足 m=n2m=n^2,且每个二元组互不相同。

对于另外 10%10\% 的数据,满足对任意 i=2⋯ni=2\cdots n,fi=i−1f_i=i-1。

对于另外 10%10\% 的数据,满足对任意 i=2⋯ni=2\cdots n,fi=1f_i=1。

对于 100%100\% 的数据,满足 1≤n≤106,1≤m≤1051\le n\le 10^6,1\le m\le 10^5。对任意 i=1,2,…n−1i=1,2,\dots n-1,满足 1≤fi+1<i+11\le f_{i+1}<i+1。对任意 i=1,2,…mi=1,2,\dots m,满足 1≤xi,yi≤n1\le x_i,y_i\le n。