Truy vấn trên cây (Tree Requests)
Đề bài
Mô tả
Cho một cây có gốc gồm đỉnh, đỉnh là gốc. Với mỗi đỉnh , cha của nó là đỉnh , trong đó . 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 .
Cho truy vấn, truy vấn thứ gồm hai số . Với mỗi truy vấn, xét tập các đỉnh nằm trong cây con của đỉnh và có độ sâu đúng bằng . 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 .
- Dòng thứ hai chứa số nguyên — cha của các đỉnh từ tới . Nếu , dòng này rỗng.
- Dòng thứ ba chứa chữ cái tiếng Anh in thường, chữ thứ là chữ trên đỉnh .
- dòng tiếp theo, mỗi dòng chứa hai số .
Dữ liệu ra
In ra dòng. Dòng thứ 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ứ , ngược lại in "No".
Ràng buộc
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 thoả mãn (chữ "z") xâu "z" là palindrome. Truy vấn 2: đỉnh và 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 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 trong cây con của đỉnh , 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