AT_arc229_e [ARC229E] Taka and Hashi
题目描述
高桥以能分裂成著名喜剧二人组“Taka and Hashi”而闻名,也就是 Taka 和 Hashi。当 Taka 和 Hashi 合并时,他们会恢复成原来的高桥。
给定一个包含 $N$ 个顶点和 $M$ 条边的连通无向图,每条边标有 $1$、$2$ 或 $3$。第 $i$ 条边连接顶点 $u_i$ 和 $v_i$,标号为 $l_i$。图中没有自环,但可能有重边。
每条边只能由高桥、Taka、Hashi 三者中的一人通过,标号为 $1$ 的边只能由高桥通过,标号为 $2$ 的边只能由 Taka 通过,标号为 $3$ 的边只能由 Hashi 通过。
初始时,高桥位于顶点 $1$。高桥和其他人可以按任意顺序执行以下操作任意次(包括零次):
- 高桥在他当前所在的顶点分裂成 Taka 和 Hashi。此时,Taka 和 Hashi 都在该顶点。
- 当前存在的某个人沿其能通过的一条边移动。
- 当 Taka 和 Hashi 位于同一顶点时,他们可以在该顶点合并,恢复成高桥。
请按升序列出所有可能的高桥最终所在顶点。
给定 $T$ 组测试数据,请对每组数据求解。
输入格式
输入按以下格式从标准输入给出:
> $T$
> $\mathrm{case}_1$
> $\mathrm{case}_2$
> $\vdots$
> $\mathrm{case}_T$
每组测试数据 $\mathrm{case}_t$ 按以下格式给出:
> $N$ $M$
> $u_1$ $v_1$ $l_1$
> $u_2$ $v_2$ $l_2$
> $\vdots$
> $u_M$ $v_M$ $l_M$
输出格式
输出 $2T$ 行。
对于每组测试数据,设 $a_1, a_2, \dots, a_k$ 为满足条件的顶点编号(升序排列),按以下格式输出:
> $k$ $a_1$ $a_2$ $\dots$ $a_k$
说明/提示
### 样例解释 1
考虑第一个测试数据。
高桥可以通过标号为 $1$ 的边从顶点 $1$ 移动到顶点 $2$。在顶点 $2$ 分裂成 Taka 和 Hashi 后,Taka 沿路径 $2 \to 3 \to 4$ 移动,Hashi 沿边 $2 \to 4$ 移动,在顶点 $4$ 合并,即可使高桥位于顶点 $4$。
另外,高桥还可以通过标号为 $1$ 的边移动到顶点 $5$。
无法使高桥位于顶点 $3$,因此满足条件的顶点为 $1, 2, 4, 5$。
### 约束条件
- $1 \leq T \leq 10^5$
- $2 \leq N \leq 2 \times 10^5$
- $N-1 \leq M \leq 2 \times 10^5$
- $1 \leq u_i < v_i \leq N$
- $1 \leq l_i \leq 3$
- 给定图是连通的。
- 所有测试数据的 $N$ 之和不超过 $2 \times 10^5$。
- 所有测试数据的 $M$ 之和不超过 $2 \times 10^5$。
- 所有输入值均为整数。
由 deepseek 翻译。