1477 - Truyền thư

Tạo bởi: GV. Bùi Phú Khuyên

Mô tả yêu cầu

Ở một quốc gia nọ có N thành phố, các thành phố được đánh số từ 1 đến N.

N - 1 con đường ở quốc gia này. Con đường thứ i kết nối hai thành phố u_i và thành phố v_i và cho phép di chuyển hai chiều. Với bất kỳ hai thành phố ab nào trong quốc gia, ta luôn có thể di chuyển từ thành phố a đến thành phố b thông qua một số con đường trung gian.

Có một người đưa thư có nhiệm vụ giao một bức thư mật tới mọi thành phố trong quốc gia đó. Để làm được việc đó, người đưa thư chỉ cần truyền bức thư đó tới tối đa K thành phố. Giả sử người đưa thư hoàn thành việc đưa thư tại thời điểm 0. Khi đó với mọi thời điểm t = 1, 2, 3, ..., quy tắc sau được áp dụng:

  • Với mọi thành phố ab được kết nối với nhau trực tiếp bởi một con đường nào đó, nếu a đã nhận được bức thư tại thời điểm t - 0.5b chưa nhận được, thì b sẽ nhận được bức thư đó tại thời điểm t

Người đưa thư muốn chọn K thành phố để bắt đầu gửi thư sao cho tổng thời gian cần thiết để tất cả các thành phố đều nhận được thư là ít nhất. Hãy giúp người đưa thư xác định thời gian ngắn nhất cần thiết.

Dữ liệu vào

  • Dòng đầu tiên ghi hai số nguyên N, K.
  • Với mỗi dòng thứ i trong N - 1 dòng tiếp theo, ghi hai số u_iv_i.

Dữ liệu ra

In ra thời gian ngắn nhắn cần thiết để truyền thư cho tất cả các thành phố trong quốc gia đó.

Giới hạn

  • 1 \leq K < N \leq 2 \times 10^5
  • 1 \leq u_i, v_i \leq N
  • Với mỗi hai thành phố ab, luôn có cách để di chuyển từ thành phố a sang thành phố b.

Ví dụ

Dữ liệu vào Sao chép
4 2
1 4
1 2
2 3
Dữ liệu ra Sao chép
1

Gợi ý/Hướng dẫn

Giải thích ví dụ:

  • Trong trường hợp này đương đi giữa các thành phố có dạng 4 − 1 − 2 − 3 và ta có K = 2.
  • Ta có thể chọn để truyền thư tới hai thành phố 12 tại thời điểm t = 0, theo như đề bài thì tại thời điểm t = 1 cả thành phố 34 đều nhận được thư từ thành phố 12, vậy ta có 1 là thời gian cần thiết nhỏ nhất để truyền thư tới tất cả các thành phố.
Đăng nhập để làm bài
Thông tin
Giới hạn thời gian 1 giây
Giới hạn bộ nhớ 128 MB