H - Subtree Nearest Light
Flavor
3.5
s
1024
MB
700
点
問題文
$N$ 頂点からなる木があります。頂点には $1$ から $N$ までの番号が付いています。辺 $i$ ($1 \leq i \leq N-1$)は頂点 $u_i$ と $v_i$ を結んでいます。
この木を頂点 $1$ を根とする根付き木とみなします。各頂点にはランプが $1$ つずつ付いており、はじめ、すべてのランプは消えています。
以下の $Q$ 個の操作を順に処理してください。
-
1 x
頂点 $x$ のランプの状態を反転します。すなわち、消えていれば点灯し、点灯していれば消灯します。 -
2 a b
頂点 $a$ を根とする部分木に含まれる頂点のうち、ランプが点灯している頂点 $v$ を選びます。
このときの $\mathrm{dist}(b, v)$ の最小値を出力してください。
条件を満たす頂点 $v$ が存在しない場合は-1を出力してください。
ここで、$\mathrm{dist}(u, v)$ は木上における頂点 $u$ と頂点 $v$ の距離、すなわち $u$ と $v$ を結ぶ単純パス上の辺の本数を表します。
制約
- $1 \leq N, Q \leq 2 \times 10^5$
- $1 \leq u_i, v_i \leq N$
- 与えられるグラフは木である
- 操作
1 xについて、$1 \leq x \leq N$ - 操作
2 a bについて、$1 \leq a, b \leq N$ - 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる
$N\ Q$
$u_1\ v_1$
$u_2\ v_2$
$\ \ \ \ \vdots$
$u_{N-1}\ v_{N-1}$
$op_1$
$op_2$
$\ \ \vdots$
$op_Q$
各操作 $op_i$ は、
$1\ x$
又は
$2\ a\ b$
のいずれかの形式で与えられる
出力
操作 2 a b が現れるたびに、その答えを $1$ 行に出力してください。
入力例 1
5 8
1 2
1 3
2 4
2 5
2 2 3
1 4
2 2 3
1 5
2 2 5
2 4 5
1 4
2 4 5
出力例 1
-1
3
0
2
-1
木を頂点 $1$ を根とする根付き木として見ると、頂点 $2$ を根とする部分木には頂点 $2, 4, 5$ が含まれます。
はじめ、すべてのランプは消えています。
- $1$ 回目の操作
2 2 3では、頂点 $2$ を根とする部分木に点灯している頂点が存在しないため、-1を出力します。 - $2$ 回目の操作
1 4により、頂点 $4$ のランプが点灯します。 - $3$ 回目の操作
2 2 3では、条件を満たす点灯頂点は頂点 $4$ です。$\mathrm{dist}(3,4)=3$ なので、3を出力します。 - $4$ 回目の操作
1 5により、頂点 $5$ のランプも点灯します。 - $5$ 回目の操作
2 2 5では、頂点 $5$ 自身が点灯しているため、最小値は $0$ です。 - $6$ 回目の操作
2 4 5では、頂点 $4$ を根とする部分木に含まれる点灯頂点は頂点 $4$ のみです。$\mathrm{dist}(5,4)=2$ なので、2を出力します。 - $7$ 回目の操作
1 4により、頂点 $4$ のランプが消灯します。 - $8$ 回目の操作
2 4 5では、頂点 $4$ を根とする部分木に点灯している頂点が存在しないため、-1を出力します。