Chọn ĐTQG Thanh Hóa 2025 - RALLY
Xem dạng PDFTrong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài
Linh là một cô giáo dạy hát cho các bạn trẻ. Để rèn luyện đôi tai cho học trò, Linh thực hiện bài tập sau:
Đầu tiên Linh đưa cho học sinh của mình một chuỗi nốt, gọi chuỗi nốt này là ~A~. Sau đó, Linh hát một chuỗi nốt khác mà học sinh phải nghe, gọi chuỗi nốt này là ~B~. Cuối cùng, học sinh phải trả lời liệu tất cả các nốt trong ~A~ có xuất hiện trong ~B~ theo cùng một thứ tự, bất kể giữa chúng có các nốt trung gian hay không.
Ví dụ: Giả sử các chữ cái được sử dụng để thể hiện các nốt. Nếu ~A = \texttt{abcad}~ và ~B = \texttt{baaacbcaad}~, câu trả lời sẽ là có vì các nốt trong ~A~ xuất hiện trong ~B~ theo cùng một thứ tự. Tuy nhiên, nếu ~A = \texttt{abc}~ và ~B = \texttt{acbbbb}~, câu trả lời sẽ là không vì các nốt trong ~A~ không xuất hiện trong ~B~ theo cùng một thứ tự.
Không chỉ hát hay, Linh còn là CPer đỉnh cao. Với bài tập trên, Linh sử dụng biểu diễn cây. Nghĩa là, một cấu trúc gồm ~N~ đỉnh được kết nối bởi ~N-1~ cạnh sao cho với mỗi cặp đỉnh ~u~ và ~v~ có một đường đi duy nhất từ ~u~ đến ~v~ đi qua một dãy các cạnh.
Trong bài tập, Linh cho học sinh của mình chuỗi ~A~ và chọn ngẫu nhiên hai đỉnh ~u~ và ~v~ từ cây của mình và một chuỗi nốt gồm các ký tự dọc theo chuỗi từ ~u~ đến ~v~ ứng với chuỗi ~B~.
Trong bài này, bạn sẽ nhận được cây đầu vào mà Linh đã sử dụng trong bài tập của mình. Mỗi đỉnh được gán một chữ cái viết thường tượng trưng cho một nốt nhạc. Chương trình của bạn phải trả lời ~Q~ truy vấn. Mỗi truy vấn bao gồm hai đỉnh ~u, v~ và chuỗi ~A~ mà học sinh phải xác định.
Yêu cầu: Đối với mỗi truy vấn, chương trình của bạn phải viết YES nếu chuỗi ~A~ xuất hiện, theo cùng thứ tự trên đường dẫn giữa ~u~ và ~v~ hoặc NO nếu không.
Input
Dòng đầu tiên ghi ~2~ số nguyên ~N~ và ~Q~.
Dòng thứ hai ghi một chuỗi ~N~ ký tự. Ký tự thứ ~i~ của chuỗi đã cho được gán cho đỉnh ~i~. Các đỉnh được đánh số từ ~1~ đến ~N~.
Mỗi dòng trong ~N-1~ dòng sau ghi ~2~ số nguyên dương ~u~ và ~v~ và chỉ ra rằng có một cạnh giữa ~2~ đỉnh trên.
Mỗi dòng trong ~Q~ dòng cuối ghi ~2~ số nguyên dương ~u, v~ và một chuỗi ~A~ đại diện cho một truy vấn.
Output
Với mỗi truy vấn, in ra trên một dòng YES hoặc NO.
Scoring
Gọi ~a~ là số ký tự trong chuỗi ~A~. Gọi ~S_A~ là tổng của tất cả ~a~. ~2 \le N, Q \le 3 \cdot 10^5~, ~Q \le S_A \le 3 \cdot 10^5~.
| Subtask | Điểm | Ràng buộc |
|---|---|---|
| 1 | ~20\%~ | ~N, Q \le 10^5~. Cây là một đường thẳng, đặc biệt các cạnh có dạng ~(i, i + 1)~. Hơn nữa ~u=1~ và tất cả các chuỗi câu hỏi đều có độ dài bằng ~1~. |
| 2 | ~20\%~ | ~N, Q \le 1000, S_A \le 2000~. |
| 3 | ~20\%~ | ~N, Q \le 10^5, S_A \le 2 \cdot 10^5~. Các đỉnh ~u~ và ~v~ đều giống nhau trong mọi câu hỏi. |
| 4 | ~20\%~ | ~N, Q \le 10^5, S_A \le 2 \cdot 10^5~. Cây là một đường. Đặc biệt, các cạnh có dạng ~(i, i + 1)~. |
| 5 | ~20\%~ | Không có ràng buộc gì thêm. |
Sample Input 1
10 3
zynserbero
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
1 10 zysero
2 9 ser
9 3 ymyr
Sample Output 1
YES
YES
NO
Notes
Trong truy vấn đầu tiên, chuỗi được hình thành bởi đường đi giữa các đỉnh ~1~ và ~10~ là zynserbero. Chuỗi zysero xuất hiện dưới dạng một chuỗi con nếu bạn loại trừ các ký tự đỉnh ~3, 5, 6, 7~.
Trong truy vấn 2, chuỗi được hình thành bởi đường đi giữa các đỉnh ~2~ và ~9~ là ynserber. Chuỗi ser xuất hiện dưới dạng một chuỗi con nếu bạn loại trừ các ký tự đỉnh ~2, 3, 5, 6, 7~.
Trong truy vấn cuối cùng, chuỗi được hình thành bởi đường đi giữa các đỉnh ~9~ và ~3~ là rebresn. Chuỗi ymyr không xuất hiện trong bất kỳ chuỗi con nào vì chữ m không bao giờ xuất hiện trong chuỗi rebresn.
Bình luận