Truy vấn trên cây (Tree Requests)

Đề bài

Mô tả

Cho một cây có gốc gồm n đỉnh, đỉnh 1 là gốc. Với mỗi đỉnh i2, cha của nó là đỉnh pi, trong đó pi<i. Mỗi đỉnh được gán một chữ cái tiếng Anh in thường.

Độ sâu của một đỉnh được định nghĩa là số đỉnh nằm trên đường đi từ gốc đến đỉnh đó. Cụ thể, độ sâu của gốc bằng 1.

Cho m truy vấn, truy vấn thứ i gồm hai số vi,hi. Với mỗi truy vấn, xét tập các đỉnh nằm trong cây con của đỉnh vi và có độ sâu đúng bằng hi. Hãy xác định xem có thể sắp xếp lại các chữ cái trên các đỉnh này để tạo thành một xâu đối xứng (palindrome) hay không. Phải dùng tất cả các chữ cái đã chọn. Nếu tập đỉnh thoả mãn là rỗng thì xâu rỗng được coi là một xâu đối xứng.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n,m.
  • Dòng thứ hai chứa n1 số nguyên p2,p3,,pn — cha của các đỉnh từ 2 tới n. Nếu n=1, dòng này rỗng.
  • Dòng thứ ba chứa n chữ cái tiếng Anh in thường, chữ thứ i là chữ trên đỉnh i.
  • m dòng tiếp theo, mỗi dòng chứa hai số vi,hi.

Dữ liệu ra

In ra m dòng. Dòng thứ i in "Yes" nếu có thể tạo thành xâu đối xứng từ các chữ cái trong truy vấn thứ i, ngược lại in "No".

Ràng buộc

  • 1n,m500000
  • 1pi<i
  • 1vi,hin

Ví dụ

Input Output Giải thích
6 5
1 1 1 3 3
zacccd
1 1
3 3
4 1
6 1
1 2
Yes
No
Yes
Yes
Yes
Truy vấn 1: chỉ có đỉnh 1 thoả mãn (chữ "z") xâu "z" là palindrome. Truy vấn 2: đỉnh 56 với chữ "c", "d" — không thể tạo palindrome. Truy vấn 3, 4: tập đỉnh rỗng Yes. Truy vấn 5: các đỉnh 2,3,4 với chữ "a", "c", "c" có thể tạo "cac".
5 6
1 1 2 3
cbcab
3 1
5 2
1 3
4 1
4 2
1 1
Yes
Yes
No
Yes
Yes
Yes
Truy vấn 3 yêu cầu xét các đỉnh ở độ sâu 3 trong cây con của đỉnh 1, gồm các chữ không thể ghép thành palindrome. Các truy vấn còn lại đều thoả mã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