A7058 | 午枫的玩具火车
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
小午新买了一个玩具火车,一共有 $n$ 节车厢,编号 $1\sim n$,每一节车厢都有头部和尾部之分并且都可以进行连接和分离。一开始,所有的火车车厢都是分开的,互不连接。
现在小枫会按顺序进行 $q$ 次操作,每次操作为以下 $3$ 中类型中的一种:
+
+ $x\neq y$
+ 在执行该操作前,车厢 $x$ 的尾部没有连接其他车厢
+ 在执行该操作前,车厢 $y$ 的头部没有连接其他车厢
+ 在执行该操作前,车厢 $x$ 和车厢 $y$ 属于不同的火车
+
+ $x \neq y$
+ 在执行该操作前,车厢 $x$ 的尾部与车厢 $y$ 的头部直接连接
+
现在小枫会按顺序进行 $q$ 次操作,每次操作为以下 $3$ 中类型中的一种:
+
1 x y :将车厢 $x$ 的尾部与车厢 $y$ 的头部连接。执行该操作前,保证以下条件成立:+ $x\neq y$
+ 在执行该操作前,车厢 $x$ 的尾部没有连接其他车厢
+ 在执行该操作前,车厢 $y$ 的头部没有连接其他车厢
+ 在执行该操作前,车厢 $x$ 和车厢 $y$ 属于不同的火车
+
2 x y :将车厢 $x$ 的尾部与车厢 $y$ 的头部分离。 执行该操作前,保证以下条件成立:+ $x \neq y$
+ 在执行该操作前,车厢 $x$ 的尾部与车厢 $y$ 的头部直接连接
+
3 x :先输出对应车厢所在火车的车厢数量,再输出包含车厢 $x$ 的火车中所有车厢的编号,按从头到尾的顺序输出。输入格式
第一行输入两个整数 $n,q$ ,分别表示车厢的个数和操作的次数。
接下来 $q$ 行,每行的输入格式及意义见题面所示。
接下来 $q$ 行,每行的输入格式及意义见题面所示。
输出格式
对于每一个第 $3$ 类操作,先输出对应车厢所在火车的车厢数量,然后从头到尾将所在火车的所有车厢编号按顺序输出。
每个第 $3$ 类操作的输出占一行。
每个第 $3$ 类操作的输出占一行。
输入输出样例
输入 #1
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
输出 #1
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
数据范围
对于 $100\%$ 的数据,满足:$2\leq n\leq 10^5, 1\leq q\leq 10^5$ ,保证所有第 $3$ 类操作,输出的车厢个数总和不超过 $10^6$ 。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?