trang chủ / đề bài / gr12_center

Đặt trạm phát sóng

Đề bài

Mô tả

Một vùng có n ngôi làng đánh số từ 1 đến n, nối với nhau bởi n−1 con đường hai chiều sao cho giữa hai làng bất kỳ luôn đi được tới nhau. Mỗi con đường dài như nhau và đi hết trong một giờ.

Người ta muốn đặt một trạm phát sóng tại một ngôi làng. Nếu đặt trạm ở làng c, thì thời gian phục vụ là số giờ lớn nhất cần để đi từ c tới một làng nào đó (đi theo đường ngắn nhất).

Hãy tìm thời gian phục vụ nhỏ nhất có thể, và liệt kê mọi ngôi làng mà đặt trạm ở đó đạt được thời gian nhỏ nhất này.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên n.
  • n−1 dòng tiếp theo, mỗi dòng chứa hai số nguyên u,v cho biết có con đường nối làng u và làng v.

Dữ liệu ra

  • Dòng thứ nhất: thời gian phục vụ nhỏ nhất.
  • Dòng thứ hai: các ngôi làng tối ưu theo thứ tự tăng dần, cách nhau bởi dấu cách.

Ràng buộc

  • 1≤n≤2·105
  • 1≤u,v≤n, u≠v

Ví dụ

Input Output Giải thích
10
1 2
2 3
3 4
4 5
3 6
6 7
2 8
9 2
2 10
2
3
Từ làng 3, mọi làng đều cách tối đa 2 giờ. Làng 2 có nhiều đường nhất nhưng cách làng 5 tới 3 giờ.
6
5 4
4 1
1 2
2 3
3 6
3
1 2
Các làng nằm trên một đường thẳng 5−4−1−2−3−6. Đặt trạm ở làng 1 hoặc làng 2 đều cần tối đa 3 giờ.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0