B. 车厢点名

    传统题 1000ms 256MiB

车厢点名

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

车厢点名

题目描述

活动室里有 NN 节玩具车厢,编号为 11 到 NN。每节车厢都有固定的前端和后端,初始时所有车厢各自独立,没有任何连接。

老师给出 QQ 次操作,请按输入顺序依次处理:

  • 1 x y:把车厢 xx 的后端与车厢 yy 的前端连接。保证操作前 x≠yx\ne y,xx 的后端没有连接其他车厢,yy 的前端没有连接其他车厢,而且 x,yx,y 属于两列不同的车列。
  • 2 x y:断开车厢 xx 的后端与车厢 yy 的前端。保证操作前 x≠yx\ne y,且这两个端点直接相连。
  • 3 x:对车厢 xx 所在的整列车点名,按照从车尾到车头的顺序输出所有车厢的编号。

车头是前端没有连接其他车厢的那一节,车尾是后端没有连接其他车厢的那一节。点名只查询当前顺序,不会改变车厢的连接关系。一节独立车厢也算一列车。

输入格式

第一行包含两个整数 N,QN,Q。

接下来 QQ 行,每行是一条操作,格式为 1 x y、2 x y 或 3 x。

所有输入均为整数,并满足:

  • 2≤N≤1052\le N\le10^5,1≤Q≤1051\le Q\le10^5。
  • 1≤x,y≤N1\le x,y\le N;第三类操作中没有参数 yy。
  • 每条操作均满足题目描述中的保证。
  • 所有第三类操作需要输出的车厢编号总数不超过 10610^6。每次输出行首的车厢数量不计入这个总数。

输出格式

对于每条 3 x 操作,输出一行。先输出这列车的车厢数 kk,再输出 kk 个整数,依次表示从车尾到车头的车厢编号。相邻整数用一个空格分隔。

按照查询出现的顺序输出各行。若没有第三类操作,则不输出任何内容。

输入输出样例

输入 #1

5 8
1 4 2
1 2 5
3 2
2 2 5
3 4
1 5 1
3 1
3 3

输出 #1

3 5 2 4
2 2 4
2 1 5
1 3

输入 #2

2 3
3 2
1 2 1
3 2

输出 #2

1 2
2 1 2

样例说明

样例 1 中,前两次操作后,车列从车头到车尾依次为 4,2,54,2,5,因此第一次点名输出 5,2,45,2,4。

断开 22 与 55 后,车厢 44 所在车列从头到尾为 4,24,2。之后把 55 与 11 连接,车厢 11 所在车列从头到尾为 5,15,1。车厢 33 始终独立。

样例 2 中,第一次查询时车厢 22 独立;连接后从车尾到车头为 1,21,2。

【睿爸信奥】入门组算法周赛(20260912)

未参加
状态
已结束
规则
IOI
题目
4
开始于
2026-9-12 0:00
结束于
2026-9-19 0:00
持续时间
168 小时
主持人
参赛人数
14