#YDRS005C. 有根树上求二维偏序

有根树上求二维偏序

题目背景

自从 7 月 yummy 出八维偏序被八维 BIT 橄榄后,他痛定思痛,决定不要弄这么多维,这次他改成了二维偏序。

你或许会好奇为什么本题空间限制这么大——实际上正解不需要很大空间,但某个部分分做法需要。

题目描述

你有两棵有根树 T1,T2T_1,T_2,询问有多少组 (u,v)(uv)(u,v)(u\ne v) 满足 T1T_1uuvv 的祖先,T2T_2uu 也是 vv 的祖先。

输入格式

输入有一行一个整数 nn,表示 T1,T2T_1,T_2 的大小。

第二行有 nn 个整数 fa1,1,fa1,2,,fa1,nfa_{1,1},fa_{1,2},\ldots,fa_{1,n},第 ii 个数表示 T1T_1ii 结点的父亲,特别地,根父亲是 00

第三行有 nn 个整数 fa2,1,fa2,2,,fa2,nfa_{2,1},fa_{2,2},\ldots,fa_{2,n},第 ii 个数表示 T2T_2ii 结点的父亲,特别地,根父亲是 00

输出格式

输出一行一个整数表示答案。

样例 #1

样例输入 #1

5
4 4 1 0 4
4 1 1 5 0

样例输出 #1

4

提示

【样例解释】

答案有 (4,2),(4,1),(4,3),(1,3)(4,2),(4,1),(4,3),(1,3) 四个。

【数据范围】

测试点编号 nn\le 特殊性质
121\sim 2 200200
353\sim 5 50005000
686\sim 8 7×1047\times 10^4
99 7×1057\times 10^5 T1,T2T_1,T_2 相同
101110\sim 11 T1,T2T_1,T_2 都是一条链(*)
121412\sim 14 T1T_1 是一条链
152015\sim 20

(*):称一棵树是一条链,当且仅当没有两个结点拥有相同的父亲结点。

对于全体数据,保证 1n7×1051\le n\le 7\times 10^5,且输入构成两棵树。