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 翻译。