昏睡红茶
Background
Tadokoro喜欢喝昏睡红茶。
Description
Tadokoro家里有一棵以\(1\)为根节点的树,树上的每个节点上有一种昏睡红茶。这些昏睡红茶的品种互不相同。如果一个点\(u\)是某个点\(v\)(\(u \neq v\))的祖先(也就是说,\(u\)位于\(1\)到\(v\)的路径上),那么我们就说\(v\)是\(u\)的”下属品种”。规定一个节点\(v\)也是节点\(v\)本身的”下属品种”。
Tadokoro很想给自己续命。每天,Tadokoro都会喝两杯昏睡红茶。这两杯昏睡红茶的种类可以一样,也可以不一样。但是这两杯茶是有顺序的。也就是说,如果这两杯茶的种类不一样,那么这两杯茶喝下去的先后顺序不同时,会得到两种不同的喝法。
Tadokoro认为,每有一种不同的喝法,就会导致自己昏睡\(1\)秒。
也就是说,如果这棵树本来有\(n\)个节点,Tadokoro可以昏睡\(n^2\)秒。
Tadokoro认为有些茶一起喝的时候会出现偏差。
Tadokoro规定了\(m\)个”冲突”,每个”冲突”包含两个节点\(u\),\(v\),如果一种喝法的两杯茶分别是\(u\)和\(v\)的”下属品种”,那么这种喝法被禁止。\(u\)可能 等于\(v\),这个时候表示不能两杯茶都来自这一个节点的”下属品种”
Tadokoro想知道他能给自己续多少秒。也就是说,有多少种没被禁止的喝法。
Format
Input
第一行两个整数\(n\),\(m\),之间用空格隔开,表示树的节点数\(n\)和冲突数\(m\)。
接下来一行\(n-1\)整数,之间用空格隔开,第\(i\)个数字表示第\(i+1\)个节点的父亲节点的编号。
接下来\(m\)行, 表示\(m\)对冲突。每行一对整数\(u\),\(v\), 表示一种喝法的两杯茶不能分别是\(u\)和\(v\)的”下属品种”。
Output
一行一个整数表示Tadokoro能昏睡多少秒
Sample 1
Input1
3 0
1 2
Output1
9
Sample 2
Input2
3 1
1 2
3 3
Output2
8
Sample 3
Input3
3 2
1 2
2 3
3 3
Output3
6
Limitation
1s, 262144KiB for each test case.
Hint
样例解释:1.一条长度为\(3\)的链,没有冲突,所以有全部\(3 \times 3=9\)种喝法。2.只有一个”冲突”,且只影响了(3,3)这种喝法。3.有两个”冲突”,影响了(3,3)(2,3)(3,2)这3种喝法。
对所有测试点,\(1 \leq n \leq 200000\),\(0 \leq m \leq 100000\),给出的节点父亲能够形成一棵以\(1\)为根的树。\(m\)个”冲突”中的节点编号都是\(1\)到\(n\)之间的整数。
第1个测试点,满足\(m=0\)
第2,3个测试点,满足\(m=1\)
第4,5个测试点,所有”冲突”都满足\(u=v\)
第6,7个测试点,满足第\(i\)个节点的父亲是第\(i-1\)个节点.
第8,9,10个测试点,无特殊限制.
信息
- ID
- 1012
- 难度
- 9
- 分类
- (无)
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 通过率
- 100%
- 被复制
- 1
- 上传者