#644. 有向图查询

有向图查询

题目描述

给你一个有向图,包含 NN 个顶点和 MM 条边。

顶点编号为 11NN,第 ii 条边是从顶点 XiX_i 指向顶点 YiY_i 的有向边。

初始时,所有顶点都是白色。

请依次处理 QQ 个查询。每个查询有如下两种类型之一:

  • 1 v:将顶点 vv 染成黑色。
  • 2 v:判断是否存在一条路径,可以从顶点 vv 沿边行走到某个黑色顶点。

输入格式

第一行输入两个整数 N,MN,M

接下来 MM 行,每行输入两个整数 Xi,YiX_i,Y_i

接下来输入一个整数 QQ

接下来 QQ 行,每行两个整数,具体情况参考题目描述。

输出格式

设共有 qq 个第二种类型的查询。输出 qq 行。

对于第 ii 个第二种类型的查询,如果能够从顶点 vv 沿边到达某个黑色顶点,输出 Yes,否则输出 No

5 6
1 2
2 3
3 1
4 5
1 4
2 5
5
1 3
2 1
2 4
1 5
2 4
Yes
No
Yes

提示

样例 1 解释

  • 初始时,给定图如下最左侧图所示。
  • 第一个查询后,顶点 33 被染成黑色,如中间所示。
  • 对第二个查询,可以从顶点 11 沿路径到达黑色顶点 33
  • 第三个查询,从顶点 44 无法到达任何黑色顶点。
  • 第四个查询后,顶点 55 被染成黑色,如最右侧所示。
  • 第五个查询,从顶点 44 开始可以到达黑色顶点 55

图示

数据范围

对于 50%50\% 的数据满足:

  • 1N20001 \leq N \leq 2000
  • 0M20000 \leq M \leq 2000
  • 1Q20001 \leq Q \leq 2000

对于 100%100\% 的数据满足:

  • 1N3×1051 \leq N \leq 3 \times 10^5
  • 0M3×1050 \leq M \leq 3 \times 10^5
  • 1Q3×1051 \leq Q \leq 3 \times 10^5
  • 1Xi,YiN1 \leq X_i, Y_i \leq N

所有数据均满足:

  • 不存在自环,即 XiYiX_i \neq Y_i
  • 不存在重边,即 (Xi,Yi)(X_i, Y_i) 互不相同。
  • 查询中的 1vN1 \leq v \leq N
  • 所有输入均为整数。