Kiểm soát hành tinh

Đề bài

Mô tả

Cho một cây gồm N đỉnh, các đỉnh được đánh số từ 1 đến N. Giữa hai đỉnh bất kỳ của cây tồn tại duy nhất một đường đi.

Ta chọn một tập S gồm đúng K đỉnh phân biệt. Một đỉnh u được gọi là bị kiểm soát nếu uS, hoặc u nằm trên đường đi giữa hai đỉnh nào đó thuộc S.

Với mỗi K=1,2,,N, hãy tính số đỉnh bị kiểm soát nhiều nhất có thể.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên N là số đỉnh của cây.
  • N1 dòng tiếp theo, mỗi dòng chứa hai số nguyên uv cho biết có một cạnh nối hai đỉnh uv.

Dữ liệu đảm bảo các cạnh tạo thành một cây.

Dữ liệu ra

In ra trên một dòng N số nguyên cách nhau bởi dấu cách. Số thứ K là số đỉnh bị kiểm soát nhiều nhất có thể khi chọn K đỉnh.

Ràng buộc

  • 1N105
  • 1u,vN

Ví dụ

Input Output Giải thích
3
1 2
2 3
1 3 3 Với K=1 chỉ kiểm soát được đúng đỉnh được chọn. Với K=2, chọn S={1,3}: đỉnh 2 nằm trên đường đi từ 1 đến 3 nên cả 3 đỉnh đều bị kiểm soát. Với K=3 không thể vượt quá 3.
4
1 2
3 2
4 2
1 3 4 4 Với K=2, mọi cách chọn hai đỉnh đều chỉ kiểm soát được 3 đỉnh (hai đỉnh đã chọn và tâm 2). Với K=3, chọn S={1,3,4} thì đỉnh 2 nằm trên đường đi giữa hai đỉnh bất kỳ trong S, nên cả 4 đỉnh bị kiểm soát.

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.400 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0