#P11829. [TOIP2024] 棲息地分配

[TOIP2024] 棲息地分配

Description

nn 只猫活动于某个地区,每只猫各有其栖息地,编号为 11nn。栖息地之间有 mm 条道路连接,道路总数不超过 2n42n-4。第 ii 条道路连接第 aia_i 个栖息地和第 bib_i 个栖息地,猫可以沿着这些道路在栖息地之间双向移动,且不会有两条不同的道路连接着同一对栖息地。有 33 个动物保护团体要接管此地区,请你协助将这 nn 个栖息地分配给这 33 个团体,满足以下要求:

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

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

我们可以将第 33, 44, 55 个栖息地分配给第 11 个团体,第 11 个栖息地分配给第 22 个团体,第 22 个栖息地分配给第 33 个团体。 移除掉道路后,如下图所示

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

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

Input Format

tt
test1test_1
test2test_2
\vdots
testttest_t

  • tt 表示测试数据个数。
  • testitest_i 为第 ii 组测试数据。

每一组测试数据的输入格式如下:

nn mm
a1a_1 b1b_1
a2a_2 b2b_2
\vdots
ama_m bmb_m

  • nn 为猫的栖息地数量。
  • mm 为道路数量。
  • ai,bia_i, b_i 为第 ii 条道路连接的栖息地编号。不会有两条不同的道路连接同一对栖息地。

Output Format

输出 tt 组测试数据之答案:

answer1answer_1
answer2answer_2
\vdots
answertanswer_t

  • answerianswer_i 为第 ii 组测试数据之答案。

每一组测试数据答案的输出格式如下:

k1k_1 c1,1c_{1,1} \cdots c1,k1c_{1,k_1}
k2k_2 c2,1c_{2,1} \cdots c2,k2c_{2,k_2}
k3k_3 c3,1c_{3,1} \cdots c3,k3c_{3,k_3}

  • kik_i 为第 ii 个团体分配到的栖息地总数。
  • ci,jc_{i,j} 为第 ii 个团体分配到的第 jj 个栖息地。

若该组测试数据不存在所求的分法,请输出 -1

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

Hint

测试数据限制

  • 1t3×1051 \le t \le 3\times 10^5
  • 3n3×1053 \le n \le 3\times 10^5
  • 0m2n40 \le m \le 2n - 4
  • 1ai,bin1 \le a_i, b_i \le naibia_i \neq b_i
  • 所有测试数据中,nn 的总和不超过 3×1053\times 10^5

评分说明

本题共有四组子任务,条件限制如下所示。 每一组可有一或多组测试数据,该组所有测试数据皆需答对才会获得该组分数。

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