BÀI 1: THÀNH PHẦN LIÊN THÔNG (TPLT)

Xem dạng PDF

Gửi bài giải


Điểm: 100,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: TPLT.INP
Output: TPLT.OUT

Dạng bài
Máy chấm
Chen Qianyu, Endministrator
  • Tên file bài làm: TPLT.cpp
  • File dữ liệu vào: TPLT.INP
  • File kết quả: TPLT.OUT
  • Thời gian chạy: 1.0 giây

Đề bài

Cho đơn đồ thị vô hướng gồm ~N~ đỉnh (đánh số từ 1 đến ~N~) và ~M~ cạnh. Ta nói hai đỉnh ~u~ và ~v~ thuộc cùng một thành phần liên thông nếu tồn tại đường đi giữa ~u~ và ~v~.

Yêu cầu: Hãy đếm số lượng thành phần liên thông của đồ thị và liệt kê các đỉnh thuộc từng thành phần liên thông (mỗi thành phần liên thông được sắp xếp tăng dần theo thứ tự chỉ số đỉnh; thứ tự các thành phần liên thông được sắp xếp tăng dần theo đỉnh đại diện nhỏ nhất của từng thành phần).

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên dương ~N~, ~M~ (~1 \le N \le 10^5, 0 \le M \le 2 \times 10^5~).
  • ~M~ dòng tiếp theo, mỗi dòng chứa hai số nguyên ~u, v (1 \le u, v \le N, u \ne v~) mô tả một cạnh vô hướng.

Kết quả

  • Dòng đầu tiên ghi số nguyên ~K~ là số lượng thành phần liên thông.
  • ~K~ dòng tiếp theo, mỗi dòng in ra danh sách các đỉnh thuộc thành phần liên thông đó theo thứ tự chỉ số tăng dần, cách nhau bởi dấu cách.

Subtask

  • Subtask 1 (40% số điểm): ~N \le 1000, M \le 2000~.
  • Subtask 2 (60% số điểm): Không có ràng buộc gì thêm.

Ví dụ

TPLT.INP TPLT.OUT
6 4
1 2
2 3
4 5
5 4
3
1 2 3
4 5
6

Bình luận

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


Không có bình luận tại thời điểm này.