[蓝桥杯 2024 国 Python B] 设计
题号:NC308953
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

小蓝是 H 市的市长,她正在用设计软件规划 H 市的道路建设。

小蓝可以选定两个地区,用一条双向道路将这两个地区连接。由于预算等因素的动态变化,小蓝经常需要拆除一些已经建设好的道路,同时,她希望知道对于当前的两个地区,是否存在一条由多条道路组成的路径能够连接这两个地区。

输入描述:

输入的第一行包含两个正整数 n, m,用一个空格分隔,其中 n 表示地区个数,m 表示操作次数。

接下来 m 行,每行表示一个操作。对于每一行:

1 x_i y_i 表示小蓝修建了一条连接地区 x_i 与地区 y_i 的双向道路。
2 表示小蓝拆除了当前 H 市中还未被拆除的最后修建的一条道路,如果当前城市中已经不存在道路,则小蓝不会进行任何操作。
3 x_i y_i 表示小蓝希望知道地区 x_i 与地区 y_i 是否连通,即是否存在一条由多条道路组成的路径能够连接这两个地区。

1 \leq n, m \leq 3000001 \leq x_i, y_i \leq nx_i \neq y_i

输出描述:

对于每个操作 3 输出 Yes 或 No,其中 Yes 表示连通,No 表示不连通。
示例1

输入

复制
2 5
3 1 2
1 1 2
3 1 2
2
3 1 2

输出

复制
No
Yes
No
示例2

输入

复制
3 8
1 1 2
1 1 3
1 2 3
2
3 2 3
2
3 1 2
3 2 3

输出

复制
Yes
Yes
No