P15295 [ROI 2012 Day 1] virus 病毒与杀毒软件
题目背景
翻译来源:[loj #5456. 「ROI 2012 Day 1」病毒与杀毒软件](https://loj.ac/p/5456)。
题目描述
一家杀毒软件 IT 公司拥有正式的管理层级结构。在这个结构中,有一个老板,他是唯一没有上司的员工。其他每个员工都有且仅有一个直接上司。每个上司可以有多个下属,并可以直接或通过下属链传递命令给任意下属。命令只能通过从上司到下属的链条传递。
在该层级结构中,如果员工 $A$ 可以通过直接或通过下属链传递命令给员工 $B$,则称 $A$ 比 $B$ 地位更高。老板比任何员工地位都高。
然而,发现所有员工还组成了一个类似的秘密层级结构,用于开发计算机病毒。在这个秘密结构中,可能有不同的老板和不同的上司关系。
我们称一对员工 $A$ 和 $B$ 为**稳定对**,如果 $A$ 在正式层级结构和秘密层级结构中都比 $B$ 地位高。
你需要编写一个程序,计算公司中稳定对的数量。
输入格式
输入文件的第一行包含一个整数 $N$ $(1 \leq N \leq 100000)$,表示公司员工的数量。
第二行包含 $N$ 个整数 $a_i$,其中如果在正式层级结构中编号为 $i$ 的员工是老板,则 $a_i = 0$;否则 $a_i$ 为该员工直接上司的编号。
第三行包含 $N$ 个整数 $b_i$,其中如果在秘密层级结构中编号为 $i$ 的员工是老板,则 $b_i = 0$;否则 $b_i$ 为该员工直接上司的编号。
员工编号从 $1$ 开始,按输入文件中提到的顺序排列。
输出格式
输出文件应包含一个整数,表示稳定对的数量。
说明/提示
详细子任务附加限制及分值如下表所示:
| 子任务 | 分值 | 附加限制 |
| :----: | :--: | :---------------------------: |
| $1$ | $25$ | 员工数量 $N \leq 100$ |
| $2$ | $25$ | 员工数量 $N \leq 2000$ |
| $3$ | $50$ | 员工数量 $N \leq 100000$ |