Chuồng Trại Mới

Đề bài

Mô tả

Q truy vấn được thực hiện theo thứ tự. Mỗi truy vấn thuộc một trong hai loại:

  • B p: Thêm một đỉnh mới vào đồ thị. Nếu p1, nối đỉnh mới này với đỉnh p bằng một cạnh vô hướng. Ngược lại (p=1), đỉnh mới không kết nối với đỉnh nào. Các đỉnh được đánh số từ 1 theo thứ tự thêm vào.
  • Q k: Truy vấn khoảng cách lớn nhất từ đỉnh k đến bất kỳ đỉnh nào đã được thêm vào và có thể đến được từ k.

Đồ thị luôn là một rừng (tập hợp các cây không kết nối với nhau). Với mỗi truy vấn loại Q, in ra khoảng cách lớn nhất tương ứng.

Dữ liệu vào

  • Dòng đầu tiên: số nguyên Q.
  • Q dòng tiếp theo, mỗi dòng là một truy vấn:
    • B p — thêm đỉnh mới, kết nối với đỉnh p (hoặc p=1 nếu không kết nối).
    • Q k — truy vấn khoảng cách xa nhất từ đỉnh k.

Dữ liệu ra

Với mỗi truy vấn loại Q, in ra một số nguyên trên một dòng — khoảng cách lớn nhất từ đỉnh k đến bất kỳ đỉnh nào có thể đến được.

Ràng buộc

  • 1Q105
  • Với truy vấn B p: p=1 hoặc 1p (số đỉnh hiện tại)
  • Với truy vấn Q k: 1k (số đỉnh hiện tại)
  • Đồ thị luôn là một rừng (không có chu trình)

Ví dụ

Input Output Giải thích
7
B -1
Q 1
B 1
B 2
Q 3
B 2
Q 2
0
2
1
Sau B -1: đỉnh 1 đứng độc lập. Q 1 → 0.
Sau B 1, B 2: đỉnh 3 nối vào 1, đỉnh 4 nối vào 2 (chuỗi 3-1-2-4 — nhưng thực ra 2 nối vào 1, 4 nối vào 2, tạo cây 3-1-2-4). Q 3: xa nhất là đỉnh 4, khoảng cách 2. B 2: thêm đỉnh 5 nối vào đỉnh 2. Q 2: xa nhất là đỉnh 3 hoặc 5, khoảng cách 1.

Ghi chú

  • Một đỉnh đứng độc lập (không kết nối đỉnh nào) có khoảng cách xa nhất là 0.
  • Truy vấn Q k chỉ xét các đỉnh đã được thêm vào tính đến thời điểm truy vấn.

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