BÀI 2: DỰNG CÂY KHUNG (SPANTREE)

Xem dạng PDF

Gửi bài giải


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

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

Đề bài

Cho đơn đồ thị vô hướng gồm ~N~ đỉnh và ~M~ cạnh. Đồ thị có thể gồm nhiều thành phần liên thông. Với mỗi thành phần liên thông có ~V~ đỉnh, ta muốn chọn ra đúng ~V - 1~ cạnh thuộc đồ thị ban đầu sao cho ~V~ đỉnh này liên thông với nhau (tạo thành một rừng cây khung).

Yêu cầu: Hãy tìm số lượng cạnh tối thiểu cần giữ lại và in ra danh sách các cạnh đó.

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 của đồ thị.

Kết quả

  • Dòng đầu tiên ghi số nguyên ~E~ là tổng số cạnh của rừng cây khung.
  • ~E~ dòng tiếp theo, mỗi dòng in ra hai đỉnh ~u, v~ thể hiện một cạnh được chọn (~u < v~). Thứ tự in cạnh tùy ý.

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ụ

SPANTREE.INP SPANTREE.OUT
5 5
1 2
2 3
1 3
4 5
4 5
3
1 2
2 3
4 5

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.