QOJ.ac

QOJ

時間限制: 3 s 記憶體限制: 2048 MB 總分: 100

#12517. 栖息地分配

统计

有 $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.