「MCOI-04」Dream and the Multiverse

题目背景

[Link](https://youtu.be/tylNqtyj0gs?t=2388) *I have gone over the scenarios in my head,* *and there are 6.96969 billion outcomes, and only one of them -* *- do I win.*

题目描述

Dream 将时空抽象为一颗 $n$ 节点有向有根树,其中树根为节点 $1$ 并且所有边的方向都为浅往深。 Dream 用他的超能力在这颗树上额外添加 $m$ 条有向边,但最终的图仍然是无环图。 Dream 进而将一个事件抽象为图上的一个节点,将一个时代抽象为图上的一个简单路径。 Dream 认为一对事件 $(i,j)$ **可行** 当且仅当存在一个时代,使得时代的首事件是 $i$,末事件是 $j$。 Dream 现在有 $q$ 组询问。第 $i$ 组询问用两个正整数 $l_i$ 与 $r_i$ 表示,其中 $l_i\le r_i$。 Dream 想知道,对每一组询问,有多少对 **可行** 事件 $(i,j)$,使得 $i,j\in[l,r]$。

输入输出格式

输入格式


第一行两个整数 $n,m$。 接下来一行 $n-1$ 个正整数描述树的结构。第 $i$ 个数代表 $i+1$ 号节点的父亲的编号 $f_i$,也就是说存在一个 $f_i$ 往 $i$ 的一条边。 接下来 $m$ 行,每行两个正整数 $u,v$,表示一条 $u$ 往 $v$ 额外添加的边。 接下来一个正整数 $q$。 接下来 $q$ 行,每行两个正整数 $l,r$,表示一组询问。

输出格式


输出 $q$ 行,每行一个整数,表示对应组询问的答案。

输入输出样例

输入样例 #1

2 2
1
1 2
1 2
1
1 2

输出样例 #1

3

说明

#### 数据规模与约定 **本题采用捆绑测试。** - Subtask 1(1 pts):树形成一条链。 - Subtask 2(11 pts):$n,q,m\le1000$。 - Subtask 3(7 pts):$m\le 5$。 - Subtask 4(23 pts):$n,q,m\le5\times10^4$。 - Subtask 5(17 pts):$q\le 10^5$。 - Subtask 6(41 pts):没有特殊限制。 对于 $100\%$ 的数据,$2\le n\le 10^5$,$0\le m\le10^5$,$1\le q\le 10^6$。 **保证** 额外添加的边不会形成环,给定的 $f_i$ 形成一颗根为 $1$ 的树。 **保证** $l\le r$。 #### 说明 [Minecraft OI Round 4](https://www.luogu.com.cn/contest/33344) C idea & solution:w33z8kqrqk8zzzx33 check:ClCN