luogu#P8336. [Ynoi2004] 2stmst

[Ynoi2004] 2stmst

题目描述

已知 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

提示

Idea:nzhtl1477,Solution:ccz181078,Code:ccz181078&djq_cpp,Data:ccz181078

样例解释:

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

数据范围:

对于 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