trang chủ / bài tập / dogsnack

Snack cho chú chó Badugi

Đề bài

Mô tả

Cho một cây có n đỉnh đánh số từ 1 đến n, gồm n1 cạnh có độ dài 1. Tại mỗi đỉnh đặt đúng một viên kẹo. Một chú chó tên Badugi bắt đầu ở đỉnh 1 và phải ăn tất cả n viên kẹo theo quy tắc sau:

  • Tại mỗi bước, Badugi tìm trong tất cả các viên kẹo còn lại viên có khoảng cách (độ dài đường đi ngắn nhất) tới vị trí hiện tại nhỏ hơn hoặc bằng k. Nếu không tồn tại viên kẹo nào như vậy, Badugi thất bại.
  • Trong số các viên kẹo "ngửi" được, Badugi đi tới viên có khoảng cách nhỏ nhất (nếu có nhiều viên cùng khoảng cách nhỏ nhất, có thể chọn tuỳ ý) và ăn viên đó.
  • Sau khi ăn xong tất cả các viên kẹo, Badugi cần quay về đỉnh 1, và khoảng cách từ vị trí cuối cùng tới đỉnh 1 cũng phải nhỏ hơn hoặc bằng k, nếu không Badugi cũng thất bại.

Vì Badugi có thể chủ động chọn thứ tự khi có nhiều viên cùng khoảng cách nhỏ nhất, hãy tìm giá trị nhỏ nhất của k để Badugi có thể ăn hết toàn bộ kẹo và quay về đỉnh 1.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t — số bộ test (1t104).
  • Mỗi bộ test:
    • Dòng đầu chứa một số nguyên n — số đỉnh của cây (2n2·105).
    • n1 dòng tiếp theo, mỗi dòng chứa hai số nguyên u, v (1u,vn, uv) — một cạnh giữa đỉnh uv.
  • Đảm bảo tổng n trên tất cả các bộ test không vượt quá 2·105.

Dữ liệu ra

Với mỗi bộ test, in ra một số nguyên — giá trị nhỏ nhất của k để Badugi hoàn thành nhiệm vụ.

Ràng buộc

  • 1t104
  • 2n2·105
  • Tổng n trên tất cả các bộ test không vượt quá 2·105.

Ví dụ

Input Output Giải thích
3
3
1 2
1 3
4
1 2
2 3
3 4
8
1 2
2 3
3 4
1 5
5 6
6 7
5 8
2
3
3
Test 1: Badugi đi 12131, bước dài nhất là 2 (từ 2 về 1 rồi sang 3, nhưng theo luật là chọn kẹo gần nhất với khoảng cách 2). Cần k=2.
Test 2: chỉ có duy nhất thứ tự 12341, đoạn cuối từ 4 về 1 dài 3, nên k=3.
Test 3: 156782341 với k=3 là chuỗi duy nhất khả thi.
1
2
1 2
1 Cây chỉ có hai đỉnh; Badugi đi 121, mỗi bước dài 1.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0