#1611. Mạng sao (STARNET)

Bộ nhớ: 512 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: Trình chấm ngoài
Đưa lên bởi: Trùm CUỐI

Đề bài

Bạn được cho một đơn đồ thị vô hướng, không có khuyên, không trọng số, liên thông gồm n đỉnh và m cạnh.

Nhiệm vụ của bạn là tìm bất kỳ cây khung nào của đồ thị này sao cho bậc lớn nhất trên tất cả các đỉnh là lớn nhất có thể. Nhắc lại rằng, bậc của một đỉnh là số cạnh kề với nó.

Dữ liệu:

  • Dòng đầu tiên chứa hai số nguyên n m ( 2 \le n \le 2 \cdot 10^5 , n - 1 \le m \le min(2 \cdot 10^5, \frac{n(n-1)}{2}) ) — lần lượt là số đỉnh và số cạnh.
  • m dòng tiếp theo mô tả các cạnh: cạnh thứ i được biểu diễn bởi một cặp số nguyên v_i , u_i ( 1 \le v_i, u_i \le n , u_i \ne v_i ).

Kết quả:

  • In ra n-1 dòng mô tả các cạnh của một cây khung sao cho bậc lớn nhất trên tất cả các đỉnh là lớn nhất có thể. Đảm bảo rằng các cạnh của cây khung được in ra tạo thành một tập con của các cạnh đầu vào (thứ tự không quan trọng và cạnh (v, u) được coi là giống như cạnh (u, v) ).
  • Nếu có nhiều câu trả lời khả thi, hãy in ra bất kỳ câu trả lời nào.

Ví dụ:

Dữ liệu:

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

Kết quả:

3 5
2 1
3 2
3 4

Dữ liệu:

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

Kết quả:

4 1
1 2
1 3

Dữ liệu:

8 9
1 2
2 3
2 5
1 6
3 4
6 5
4 5
2 7
5 8

Kết quả:

3 2
2 5
8 5
6 1
2 7
1 2
3 4

Giới hạn:

  • Subtask #1 (20% số điểm): n \le 15, m \le 25 .
  • Subtask #2 (30% số điểm): n \le 2000, m \le 5000 .
  • Subtask #3 (10% số điểm): m = n - 1 .
  • Subtask #4 (40% số điểm): n, m \le 2 \cdot 10^5 .