题目描述
题目译自 JOISC 2013 Day2 T3 「スパイ」
你听说过 Just Odd Inventions 公司吗?这家公司的业务是进行「只是有点奇特的发明」(just odd inventions),我们简称它为 JOI 公司。
另外,你知道 Incredibly Odd Inventions 公司吗?这家公司的业务是进行「极其奇特的发明」(incredibly odd inventions),我们简称它为 IOI 公司。
JOI 公司和 IOI 公司各有 N 名员工。JOI 公司的员工分别命名为 j1,j2,⋯,jN,IOI 公司的员工分别命名为 i1,i2,⋯,iN。两家公司各有一名员工是公司的总裁,除总裁外,每名员工都有且仅有一名直接上司(来自同公司)。

图 1:JOI 和 IOI 的组织结构示例。从代表员工的圆圈中伸出的箭头指向该员工的直接下属。
IOI 公司总是通过窃取 JOI 公司的研究项目信息来完成他们的“极其奇特的发明”。目前,JOI 公司启动了 M 个研究项目,命名为 r1,r2,⋯,rM;相应地,IOI 公司也启动了 M 个间谍项目,命名为 s1,s2,⋯,sM。IOI 公司的间谍项目 sb 专门针对 JOI 公司的研究项目 rb 进行信息窃取。
两家公司在项目分配员工的方式相同。每个项目指定一名领导,领导会向其所有直接下属传达命令,收到命令的员工再向自己的所有直接下属继续传达命令。以此类推,领导及其所有收到命令的员工都属于该项目,其他员工则不属于该项目。
| 项目 |
领导者 |
员工 |
项目 |
领导者 |
员工 |
| 研究项目 r1 |
j1 |
j1,j2,j3 |
间谍计划 s1 |
i1 |
i1 |
| 研究项目 r2 |
j2 |
j2,j3 |
间谍计划 s2 |
i1 |
i1 |
| 研究项目 r3 |
j2 |
j2,j3 |
间谍计划 s3 |
i3 |
i3 |
| 研究项目 r4 |
j3 |
j3 |
间谍计划 s4 |
i2 |
i1,i2,i3 |
图 2:图 1 中 JOI 和 IOI 的项目示例
IOI 公司的员工 ia 会从 JOI 公司的员工 ja 处窃取信息。如果 IOI 公司的员工 ia 属于间谍项目 sb,且 JOI 公司的员工 ja 属于研究项目 rb,则该员工在该间谍项目中成功完成间谍活动。两家公司的员工可能同时属于多个项目,IOI 公司的员工也可能在多个间谍项目中成功完成间谍活动。
给定 JOI 公司和 IOI 公司的员工信息及项目信息,你需要编写一个程序,计算 IOI 公司的每名员工在多少个间谍项目中成功完成了间谍活动。
输入格式
从标准输入中读取以下数据:
- 第一行包含两个整数 N,M,用空格分隔,表示 JOI 公司和 IOI 公司各有 N 名员工,研究项目和间谍项目各有 M 个。
- 接下来 N 行中,第 a (1≤a≤N) 行包含两个整数 Pa,Qa (0≤Pa≤N,0≤Qa≤N),用空格分隔,表示 JOI 公司的员工 ja 是员工 jPa 的直接下属,IOI 公司的员工 ia 是员工 iQa 的直接下属。若 Pa=0,则员工 ja 为 JOI 公司总裁;若 Qa=0,则员工 ia 为 IOI 公司总裁。
- 接下来 M 行中,第 b (1≤b≤M) 行包含两个整数 Rb,Sb (1≤Rb≤N,1≤Sb≤N),用空格分隔,表示研究项目 rb 的领导为员工 jRb,间谍项目 sb 的领导为员工 iSb。
输出格式
在标准输出中输出 N 行,第 a (1≤a≤N) 行输出一个整数,表示 IOI 公司的员工 ia 在多少个间谍项目中成功完成了间谍活动。
3 4
0 2
1 0
2 2
1 1
2 1
2 3
3 2
1
0
2
此输入输出对应问题描述中的示例。在此情况下:
- 属于间谍项目 s1,s2,s4 的员工 i1,由于员工 j1 属于研究项目 r1,因此在间谍项目 s1 中成功完成间谍活动。
- 属于间谍项目 s4 的员工 i2,由于员工 j2 不属于研究项目 r4,因此在任何间谍项目中均未成功完成间谍活动。
- 属于间谍项目 s3,s4 的员工 i3,由于员工 j3 属于研究项目 r3,r4,因此在间谍项目 s3,s4 中成功完成间谍活动。
数据范围与提示
对于所有输入数据,满足:
- 1≤N≤2000
- 1≤M≤500000
详细子任务附加限制及分值如下表所示。
| 子任务 |
分值 |
附加限制 |
| 1 |
10 |
N≤200, M≤200 |
| 2 |
20 |
M≤2000 |
| 3 |
70 |
无附加限制 |