COMPCONN - Thành phần liên thông

Xem dạng PDF

Gửi bài giải

Điểm: 2,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Đồ thị vô hướng ~G(V, E)~ được gọi là liên thông (connected) nếu giữa mọi cặp đỉnh của ~G~ luôn tồn tại đường đi. Ví dụ hình dưới đây là một đồ thị liên thông.

COMPCONN1.png

Cho đồ thị vô hướng ~G = (V, E)~, ~U~ là một tập con của ~V~. Ta nói ~U~ là một thành phần liên thông của ~G~ nếu hạn chế của ~G~ trên tập ~U: G_U = (U, E_U)~ là một đồ thị liên thông. Ví dụ hình dưới đây là đồ thị có ~3~ thành phần liên thông.

COMPCONN2.jpg

Bài toán:Cho đơn đồ thị vô hướng ~G(V, E)~ có ~n~ đỉnh và ~m~ cạnh. Hãy tìm các thành phần liên thông của ~G~.

Input

  • Dòng đầu chứa hai số nguyên ~n~ và ~m~ là số đỉnh và số cạnh của đồ thị ~G~;
  • ~m~ dòng tiếp theo, mỗi dòng chứa một cặp số ~u, v~ cho biết một cạnh liên thuộc giữa ~u~ và ~v~ trong ~G~.

Giới hạn:

  • ~1 ≤ n ≤ 1000; 0 ≤ m ≤ \frac{n(n – 1)}{2}~.

Output

  • Dòng đầu ghi số nguyên dương ~C~ là số thành phần liên thông trong ~G~;
  • ~C~ dòng tiếp theo, mỗi dòng ghi một thành phần liên thông theo khuôn dạng: Số ~v~ đầu là số đỉnh của thành phần liên thông, ~v~ số tiếp theo là danh sách các đỉnh "liệt kê theo thứ tự tăng dần".
  • Lưu ý: Không in ra các khoảng trắng dư thừa!

Hai số trên cùng một dòng được ghi cách nhau một dấu cách, "các thành phần liên thông liệt kê theo thứ tự các đỉnh nhỏ nhất tăng dần".

Sample

Input #1
7 6
1 2
1 3
2 3
5 6
6 7
5 7
Output #1
3
3 1 2 3
1 4
3 5 6 7

Problem source: Chuyên Sơn La Online Judge


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    lengocqui  đã bình luận lúc 24, Tháng 2, 2024, 5:07

    !!!


  • 0
    swe_20  đã bình luận lúc 18, Tháng 11, 2023, 7:14

    mng cho e hỏi #testcase 3 là như nào vậy ạ ? em thường sai lỗi đó ạ