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

Kay và Bông Tuyết

Đề bài

Mô tả

Cho một cây có gốc gồm n đỉnh, đánh số từ 1 đến n, gốc là đỉnh 1.

Cây con của đỉnh v gồm đỉnh v và tất cả các đỉnh nằm trong nhánh của v (con cháu trực tiếp hoặc gián tiếp). Nói cách khác, cây con của v gồm mọi đỉnh uv nằm trên đường đi từ u về gốc.

Trọng tâm (centroid) của một cây (hoặc cây con) là một đỉnh mà nếu xóa nó đi thì mỗi thành phần liên thông còn lại có kích thước không vượt quá một nửa kích thước của cây (hoặc cây con) ban đầu.

Cho q truy vấn. Với mỗi truy vấn gồm một đỉnh v, hãy tìm một trọng tâm của cây con gốc v. Nếu có nhiều đỉnh thỏa mãn, in ra đỉnh nào cũng được.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nq: số đỉnh của cây và số truy vấn.
  • Dòng thứ hai chứa n1 số nguyên p2,p3,,pn, trong đó pi là cha của đỉnh i.
  • q dòng tiếp theo, mỗi dòng chứa một số nguyên vi: đỉnh xác định cây con cần tìm trọng tâm.

Dữ liệu ra

In ra q dòng, dòng thứ i là chỉ số của một trọng tâm của cây con gốc vi. Nếu có nhiều đáp án hợp lệ, in ra đáp án nào cũng được.

Ràng buộc

  • 2n300000
  • 1q300000
  • 1pin, và dãy pi luôn xác định một cây hợp lệ.
  • 1vin

Ví dụ

Input Output Giải thích
7 4
1 1 3 3 5 3
1
2
3
5
3
2
3
5
Cây con gốc 1 là toàn bộ cây (7 đỉnh); xóa đỉnh 3 tạo ra các thành phần kích thước 1,1,2,2, đều không quá 3. Cây con gốc 2 chỉ có một đỉnh nên trọng tâm là 2. Cây con gốc 5 gồm hai đỉnh {5,6}; cả 5 lẫn 6 đều là trọng tâm hợp lệ, ở đây in 5.
2 2
1
1
2
1
2
Cây con gốc 1 có hai đỉnh {1,2}; xóa đỉnh 1 để lại một thành phần kích thước 11 nên 1 là trọng tâm (đỉnh 2 cũng hợp lệ). Cây con gốc 2 chỉ có một đỉnh.

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