CF1656I Neighbour Ordering

题目描述

给定一个无向图 $G$,我们称邻居排序为对 $G$ 中每个顶点的所有邻居给出一个有序列表。对于 $G$ 的一个给定邻居排序和三个顶点 $u$、$v$、$w$,若 $v$ 是 $u$ 和 $w$ 的邻居,我们记 $u

输入格式

输入包含多组测试数据。第一行包含一个整数 $t$($1 \leq t \leq 10^4$),表示测试用例的数量。接下来是每个测试用例的描述。 每个测试用例的第一行包含两个整数 $n$ 和 $m$($2 \leq n \leq 3 \times 10^5$,$1 \leq m \leq 3 \times 10^5$),分别表示图的顶点数和边数。 接下来的 $m$ 行,每行包含两个整数 $u, v$($0 \leq u, v < n$),表示存在一条连接顶点 $u$ 和 $v$ 的边。保证图是连通的,且不存在自环或重边。 所有测试用例中 $n$ 的总和与 $m$ 的总和均不超过 $3 \times 10^5$。

输出格式

对于每个测试用例,若存在好的邻居排序,输出一行 YES,否则输出一行 NO。可以使用任意大小写字母。 如果答案为 YES,接下来输出 $n$ 行,每行描述一个顶点的邻居排序。在第 $i$ 行,输出顶点 $i$ 的所有邻居,按顺序排列。 如果存在多种好的邻居排序,输出任意一种均可。

说明/提示

由 ChatGPT 4.1 翻译