AT_abc225_d.[ABC225D] Play Train

普及-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

高桥君正在用玩具火车进行连接和分离的游戏。
共有 NN 辆火车,分别命名为火车 11、火车 22、…\ldots、火车 NN。
一开始,所有火车都是分开的,互不连接。

现在有 QQ 个操作,请按给定顺序依次处理。
操作有以下 33 种类型之一:

  • 1 x y :将火车 xx 的尾部与火车 yy 的头部连接。
    保证以下条件成立:
    • x≠yx \neq y
    • 在执行该操作前,火车 xx 的尾部没有连接其他火车
    • 在执行该操作前,火车 yy 的头部没有连接其他火车
    • 在执行该操作前,火车 xx 和火车 yy 属于不同的连通分量
  • 2 x y :将火车 xx 的尾部与火车 yy 的头部分离。
    保证以下条件成立:
    • x≠yx \neq y
    • 在执行该操作前,火车 xx 的尾部与火车 yy 的头部直接连接
  • 3 x :输出包含火车 xx 的连通分量中所有火车的编号,按从头到尾的顺序输出。

输入格式

输入通过标准输入给出,格式如下:

NN QQ
query1\mathrm{query}_1
query2\mathrm{query}_2
⋮\vdots
queryQ\mathrm{query}_Q

第 ii 个操作 queryi\mathrm{query}_i,首先给出操作类型 cic_i(1,2,31,2,3 之一)。
若 ci=1,2c_i=1,2,则还会给出 x,yx,y;若 ci=3c_i=3,则还会给出 xx。

即,每个操作有以下三种格式之一:

11 xx yy

22 xx yy

33 xx

输出格式

对于每个 ci=3c_i=3 类型的操作,假设应输出的火车编号为 j1,j2,…,jMj_1, j_2, \ldots, j_M,
请按如下格式输出一行:

MM j1j_1 j2j_2 …\ldots jMj_M

设 ci=3c_i=3 类型的操作共有 qq 个,请输出 qq 行。
第 kk 行输出第 kk 个此类操作的答案。

输入输出样例

  • 输入#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

说明/提示

数据范围

  • 2≤N≤1052 \leq N \leq 10^5
  • 1≤Q≤1051 \leq Q \leq 10^5
  • 1≤x≤N1 \leq x \leq N
  • 1≤y≤N1 \leq y \leq N
  • 所有输入均为整数
  • 所有操作均满足题目中的条件
  • 所有 3 x 类型操作输出的火车编号总数不超过 10610^6

样例解释 1

处理到 query5\mathrm{query}_5 时,火车的连接情况如下图所示。此时,例如火车 22 与火车 3,5,6,73,5,6,7 属于同一连通分量,但与火车 1,41,4 不属于同一连通分量。

处理到 query11\mathrm{query}_{11} 时,火车的连接情况如下图所示。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页