#P8260. [CTS2022] 燃烧的呐球

    ID: 7551 Type: RemoteJudge 12000ms 2048MiB Tried: 0 Accepted: 0 Difficulty: 7 Uploaded By: Tags>WC/CTSC/集训队2022O2优化

[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

之后一行 n1n-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\% 的数据,满足 1n,m10001\le n,m\le 1000

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

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

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

对于另外 10%10\% 的数据,满足对任意 i=2ni=2\cdots nfi=i1f_i=i-1

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

对于 100%100\% 的数据,满足 1n106,1m1051\le n\le 10^6,1\le m\le 10^5。对任意 i=1,2,n1i=1,2,\dots n-1,满足 1fi+1<i+11\le f_{i+1}<i+1。对任意 i=1,2,mi=1,2,\dots m,满足 1xi,yin1\le x_i,y_i\le n