Rừng đường kính nhỏ nhất
Đề bài
Mô tả
Cho một rừng — đồ thị vô hướng đỉnh trong đó mỗi thành phần liên thông là một cây.
Đường kính của một cây liên thông là số cạnh lớn nhất trên đường đi ngắn nhất giữa hai đỉnh bất kỳ của nó.
Bạn cần thêm một số cạnh (có thể bằng ) vào rừng sao cho đồ thị thu được là một cây duy nhất và đường kính của cây này nhỏ nhất có thể.
Nếu có nhiều cách thêm cạnh cho cùng kết quả tối ưu, in ra bất kỳ cách nào.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và — số đỉnh và số cạnh của rừng.
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và (, ) mô tả một cạnh.
Dữ liệu đảm bảo đồ thị đã cho là một rừng.
Dữ liệu ra
- Dòng đầu in ra đường kính của cây thu được.
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và mô tả một cạnh được thêm vào (, ).
Đồ thị thu được phải là một cây và có đường kính nhỏ nhất có thể. Khi (rừng đã là một cây), không cần thêm cạnh nào — chỉ in ra đường kính.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 2 1 2 2 3 |
2 2 4 |
Hai thành phần và . Thêm cạnh cho cây có đường kính . Thêm hay sẽ cho đường kính . |
| 2 0 | 1 2 1 |
Cạnh duy nhất khả thi là . |
| 3 2 1 3 2 3 |
2 | Rừng đã là cây, đường kính , không cần thêm cạnh. |
Bình luận