atcoder#ABC225D. [ABC225D] Play Train

[ABC225D] Play Train

题目描述

高橋君は電車のおもちゃを連結させたり分離させたりして遊んでいます。
電車は N N 個あり、電車 1 1 、電車 2 2 \ldots 、電車 N N と名前がついています。
はじめ電車どうしは連結しておらず全てバラバラです。

クエリが Q Q 個与えられるので、与えられた順番に処理してください。
クエリは次の 3 3 種類のいずれかです。

  • 1 x y :電車 x x の後部と、電車 y y の前部を連結させる。
    以下のことが保証されます。

    • x  y x\ \neq\ y
    • クエリを処理する直前に、電車 x x の後部と連結している電車は存在しない
    • クエリを処理する直前に、電車 y y の前部と連結している電車は存在しない
    • クエリを処理する直前に、電車 x x と電車 y y は異なる連結成分に属する
  • 2 x y :電車 x x の後部と、電車 y y の前部を分離させる。
    以下のことが保証されます。

    • x  y x\ \neq\ y
    • クエリを処理する直前に、電車 x x の後部と電車 y y の前部は直接連結している
  • 3 x :電車 x x が含まれる連結成分に属する電車の番号を、先頭から順番に全て出力する。

输入格式

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

N N Q Q query1 \mathrm{query}_1 query2 \mathrm{query}_2 \vdots queryQ \mathrm{query}_Q

i i 番目のクエリ queryi \mathrm{query}_i では、まずクエリの種類 ci c_i 1, 2, 3 1,\ 2,\ 3 のいずれか)が与えられる。
ci = 1,2 c_i\ =\ 1,2 の場合は x,y x,y が追加で与えられ、ci =3 c_i\ =3 の場合は x x が追加で与えられる。

すなわち、各クエリは以下に示す 3 3 つの形式のいずれかである。

1 1 x x y y

2 2 x x y y

3 3 x x

输出格式

ある ci = 3 c_i\ =\ 3 のタイプのクエリにおいて、出力すべき値が j1, j2,  , jM j_1,\ j_2,\ \ldots\ ,\ j_M であるとする。
このとき以下の形式で 1 1 行に出力せよ。

M M j1 j_1 j2 j_2 \ldots jM j_M

ci = 3 c_i\ =\ 3 のタイプのクエリの数を q q として、q q 行出力せよ。
k (1  k  q) k\ (1\ \leq\ k\ \leq\ q) 行目では k k 番目のそのようなクエリに対する答えを出力せよ。

题目大意

给定 NN 个小车,每个小车的编号分别为:1,2,,N1,2,\dots,N

现在有 QQ 个操作,每个操作执行 33 种操作:

  • 1 x y,将 xxyy 相连。(yyxx 之后)

  • 2 x y,将 xxyy 的连接解除。

  • 3 x,输出 xx 所在链的长度,及其这条链中的所有元素。(从前往后

translate by SYC0226

7 14
1 6 3
1 4 1
1 5 2
1 2 7
1 3 5
3 2
3 4
3 6
2 3 5
2 4 1
1 1 5
3 2
3 4
3 6
5 6 3 5 2 7
2 4 1
5 6 3 5 2 7
4 1 5 2 7
1 4
2 6 3

提示

制約

  • 2  N  105 2\ \leq\ N\ \leq\ 10^5
  • 1  Q  105 1\ \leq\ Q\ \leq\ 10^5
  • 1  x  N 1\ \leq\ x\ \leq\ N
  • 1  y  N 1\ \leq\ y\ \leq\ N
  • 入力は全て整数
  • クエリは全て問題文の条件を満たす
  • 3 x の形式のクエリで出力する電車の番号の個数の合計は 106 10^6 以下

Sample Explanation 1

query5 \mathrm{query}_5 まで処理した時、電車は以下のようになっています。 この時、たとえば電車 2 2 は、電車 3,5,6,7 3,5,6,7 と同じ連結成分に属していますが、電車 1,4 1,4 とは同じ連結成分に属していません。 ![](https://img.atcoder.jp/ghi/dbfd2666776e351752bba67e9b65fafa.png) query11 \mathrm{query}_{11} まで処理した時、電車は以下のようになっています。 ![](https://img.atcoder.jp/ghi/dad814ca77ec58f31cb88c62b9825bef.png)