QOJ.ac

QOJ

Time Limit: 3 s Memory Limit: 2048 MB Total points: 100

#12517. 栖息地分配

Statistics

有 $n$ 只猫活动于某个地区,每只猫各有其栖息地,编号为 $1$ 到 $n$。栖息地之间有 $m$ 条道路连接,道路总数不超过 $2n - 4$。第 $i$ 条道路连接第 $a_i$ 个栖息地和第 $b_i$ 个栖息地,猫可以沿着这些道路在栖息地之间双向移动,且不会有两条不同的道路连接着同一对栖息地。有 $3$ 个动保团体要接管此地区,请你协助将这 $n$ 个栖息地分配给这 $3$ 个团体,满足以下要求:

  • 每个栖息地仅由 $1$ 个团体管理,且每个团体需要管理至少 $1$ 个栖息地。每个团体所属的栖息地之间不一定要连通。
  • 为了方便管理,每个团体会移除由该团体负责的栖息地之间的道路。换句话说,若有一条道路连接的两个栖息地被分配到同一个团体,该道路会被移除。
  • 这些道路移除后,剩余的道路不可以形成“环”,以免猫可能会绕着环奔跑,让工作人员难以捉捕。也就是说,不可以存在一个两两相异的栖息地序列 $v_1, v_2, \dots, v_k$,满足 $k \ge 3$,且对于所有 $1 \le i < k$,栖息地 $v_i$ 和栖息地 $v_{i+1}$ 都有一条未被移除的道路连接、同时 $v_k$ 和 $v_1$ 也有一条未被移除的道路连接。

举例,有 $5$ 个栖息地,道路连接如下图所示:

我们可以将第 $3, 4, 5$ 个栖息地分配给第 $1$ 个团体,第 $1$ 个栖息地分配给第 $2$ 个团体,第 $2$ 个栖息地分配给第 $3$ 个团体。移除道路后,如下图所示:

剩余道路不存在环,所以这是一种满足目标的分配方式。

请输出这 $3$ 个团体应该分别管理哪些栖息地,若有多种分配方式满足条件,输出任意一种。

输入格式

输入包含多组测试数据。

第一行包含一个整数 $t$,表示测试数据个数。

对于每一组测试数据: 第一行包含两个整数 $n$ 和 $m$。 接下来 $m$ 行,每行包含两个整数 $a_i$ 和 $b_i$,表示第 $i$ 条道路连接的栖息地编号。

  • $n$ 为猫的栖息地数量。
  • $m$ 为道路数量。
  • $a_i, b_i$ 为第 $i$ 条道路连接的栖息地编号。不会有两条不同的道路连接着同一对栖息地。

输出格式

输出 $t$ 组测试数据的答案。

对于每一组测试数据: 若存在合法的分配方式,请输出三行,每行代表一个团体。第 $i$ 行的格式为: $k_i \ c_{i,1} \ c_{i,2} \ \dots \ c_{i,k_i}$ 其中 $k_i$ 为第 $i$ 个团体分配到的栖息地总数,$c_{i,j}$ 为第 $i$ 个团体分配到的第 $j$ 个栖息地。

若该组测试数据不存在所求的分配方式,请输出 $-1$。

数据范围

  • $1 \le t \le 3 \times 10^5$
  • $3 \le n \le 3 \times 10^5$
  • $0 \le m \le 2n - 4$
  • $1 \le a_i, b_i \le n, a_i \neq b_i$
  • 所有测试数据中,$n$ 的总和不超过 $3 \times 10^5$

子任务

子任务 分数 额外输入限制
1 3 输入满足 $m = n - 1$,且所有的栖息地连通。
2 23 输入保证存在两个以上的栖息地互相无法抵达。
3 28 输入满足所有测试数据中,$n$ 的总和不超过 $500$。
4 46 无额外限制。

样例

输入格式 1

1
5 6
1 2
2 3
3 4
4 5
5 3
4 2

输出格式 1

3 3 4 5
1 1
1 2

输入格式 2

2
5 4
1 2
1 3
3 4
3 5
5 4
1 2
2 3
1 3
4 5

输出格式 2

2 1 2
1 3
2 4 5
3 1 2 3
1 4
1 5

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.