atcoder#ABC295G. [ABC295G] Minimum Reachable City

[ABC295G] Minimum Reachable City

题目描述

N N 頂点の有向グラフ GS G_S があり、頂点には 1 1 から N N までの番号が付けられています。 GS G_S には N1 N-1 本の辺があり、i i 本目 (1 i  N1) (1\leq\ i\ \leq\ N-1) の辺は頂点 pi (1 pi  i) p_i\ (1\leq\ p_i\ \leq\ i) から頂点 i+1 i+1 に伸びています。

N N 頂点の有向グラフ G G があり、頂点には 1 1 から N N までの番号が付けられています。 最初、G G GS G_S と一致しています。 G G に関するクエリが Q Q 個与えられるので、与えられた順番に処理してください。クエリは次の 2 2 種類のいずれかです。

  • 1 u v : G G に頂点 u u から頂点 v v に伸びる辺を追加する。 このとき、以下の条件が満たされることが保証される。
    • u  v u\ \neq\ v
    • GS G_S 上で頂点 v v からいくつかの辺を辿ることで頂点 u u に到達可能である
  • 2 x : G G 上で頂点 x x からいくつかの辺を辿ることで到達可能な頂点 (頂点 x x を含む) のうち、最も番号が小さい頂点の番号を出力する。

输入格式

入力は以下の形式で標準入力から与えられる。

N N p1 p_1 p2 p_2 \dots pN1 p_{N-1} Q Q query1 \mathrm{query}_1 query2 \mathrm{query}_2 \vdots queryQ \mathrm{query}_Q

ただし、queryi \mathrm{query}_i i i 個目のクエリを表しており、次のいずれかの形式で与えられる。

1 1 u u v v

2 2 x x

输出格式

2 2 番目の形式のクエリの回数を q q 回として、q q 行出力せよ。 j (1 j  q) j\ (1\leq\ j\ \leq\ q) 行目には、2 2 番目の形式のクエリのうち j j 個目のものに対する答えを出力せよ。

题目大意

给定一张点数为 NN 的有向图,初始 pi(1pii,1i<N)p_i(1\leq p_i \leq i,1 \leq i < N) 连向 i+1i+1

QQ 次操作,有两种:

  • 1 u vuuvv 连一条有向边,保证最开始时 vv 能到达 uuuvu \ne v
  • 2 x:询问 xx 能到达的点中编号最小的点。
5
1 2 3 3
5
2 4
1 4 2
2 4
1 5 1
2 4
4
2
1
7
1 1 2 2 3 3
10
2 5
1 5 2
2 5
1 2 1
1 7 1
1 6 3
2 5
2 6
2 1
1 7 1
5
2
1
1
1

提示

制約

  • 2 N  2× 105 2\leq\ N\ \leq\ 2\times\ 10^5
  • 1 Q  2× 105 1\leq\ Q\ \leq\ 2\times\ 10^5
  • 1 pi i 1\leq\ p_i\leq\ i
  • 1 1 番目の形式のクエリについて、
    • 1 u,v  N 1\leq\ u,v\ \leq\ N
    • u  v u\ \neq\ v
    • GS G_S 上で頂点 v v からいくつかの辺を辿ることで頂点 u u に到達可能である
  • 2 2 番目の形式のクエリについて、1 x  N 1\leq\ x\ \leq\ N
  • 入力は全て整数

Sample Explanation 1

- 1 1 個目のクエリの時点で、G G 上で頂点 4 4 からいくつかの辺を辿ることで到達可能な頂点は 4 4 のみです。 - 3 3 個目のクエリの時点で、G G 上で頂点 4 4 からいくつかの辺を辿ることで到達可能な頂点は 2,3,4, 5 2,3,4,\ 5 です。 - 5 5 個目のクエリの時点で、G G 上で頂点 4 4 からいくつかの辺を辿ることで到達可能な頂点は 1,2,3,4,5 1,2,3,4,5 です。