Cắt và nối cạnh để có một trọng tâm
Đề bài
Mô tả
Cho một cây gồm đỉnh. Một đỉnh được gọi là trọng tâm của cây nếu khi xoá đỉnh đó (cùng mọi cạnh kề với nó), kích thước thành phần liên thông lớn nhất của đồ thị còn lại là nhỏ nhất có thể. Một cây có thể có nhiều hơn một trọng tâm.
Bạn phải thực hiện đúng hai thao tác theo thứ tự: xoá một cạnh của cây, sau đó thêm một cạnh. Đồ thị thu được sau hai thao tác phải là một cây. Được phép thêm lại chính cạnh vừa xoá.
Hãy thực hiện hai thao tác sao cho cây thu được có đúng một trọng tâm. Có thể chứng minh rằng luôn tồn tại cách làm như vậy.
Dữ liệu vào
Dòng đầu tiên chứa số nguyên , số bộ dữ liệu.
Mỗi bộ dữ liệu gồm:
- Dòng đầu chứa số nguyên , số đỉnh của cây.
- dòng tiếp theo, mỗi dòng chứa hai số nguyên thể hiện một cạnh nối đỉnh và đỉnh .
Dữ liệu đảm bảo đồ thị cho là một cây.
Dữ liệu ra
Với mỗi bộ dữ liệu, in ra hai dòng:
- Dòng thứ nhất gồm hai số nguyên : xoá cạnh nối và . Cạnh này phải tồn tại trong cây.
- Dòng thứ hai gồm hai số nguyên : thêm cạnh nối và .
Nếu có nhiều đáp án, in ra đáp án bất kỳ.
Ràng buộc
- Tổng trên tất cả các bộ dữ liệu không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 2 5 1 2 1 3 2 4 2 5 6 1 2 1 3 1 4 2 5 2 6 |
2 5 2 5 2 5 1 5 |
Cây thứ nhất có duy nhất trọng tâm là đỉnh , nên xoá rồi thêm lại cùng một cạnh là đủ. Cây thứ hai có hai trọng tâm và ; sau khi xoá cạnh và thêm cạnh , đỉnh là trọng tâm duy nhất. |
| 1 4 1 2 2 3 3 4 |
3 4 2 4 |
Đường đi có hai trọng tâm và . Sau khi xoá cạnh và thêm cạnh , ta được cây hình sao tâm , có trọng tâm duy nhất là . |
Bình luận