Đường chữ trên cây

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài

Cho một cây gồm ~n~ đỉnh, mỗi đỉnh được gán một chữ cái tiếng Anh thường. Với hai đỉnh ~u~ và ~v~, định nghĩa ~word(u, v)~ là xâu thu được khi đi theo đường đi đơn từ ~u~ đến ~v~ và ghi lại nhãn của các đỉnh theo đúng thứ tự đi qua.

Có ~q~ truy vấn. Mỗi truy vấn gồm bốn đỉnh ~u~, ~v~, ~x~, ~y~. Cần kiểm tra:

~word(u, v) = word(x, y)~

hay không.

Yêu cầu

Với mỗi truy vấn, in YES nếu hai xâu đường đi bằng nhau, ngược lại in NO.

Dữ liệu

Dữ liệu vào từ chuẩn gồm:

  • Dòng đầu tiên chứa hai số nguyên ~n~ và ~q~.
  • Dòng thứ hai chứa xâu ~c~ độ dài ~n~, trong đó ~c_i~ là nhãn của đỉnh ~i~.
  • ~n-1~ dòng tiếp theo, mỗi dòng chứa hai số nguyên ~a~ và ~b~ mô tả một cạnh của cây.
  • ~q~ dòng tiếp theo, mỗi dòng chứa bốn số nguyên ~u~, ~v~, ~x~, ~y~.

Kết quả

Ghi ra ~q~ dòng, mỗi dòng là YES hoặc NO.

Ví dụ

Ví dụ 1

Input

7 5
abacaba
1 2
1 3
2 4
2 5
3 6
3 7
4 5 6 7
4 1 1 7
4 2 2 4
5 1 6 3
4 6 5 7

Output

YES
NO
NO
YES
NO

Giải thích

Ví dụ 1

~word(4,5) = \text{aca}~ và ~word(6,7) = \text{aca}~, nên truy vấn đầu tiên có kết quả YES.

~word(5,1) = \text{ba}~ và ~word(6,3) = \text{ba}~, nên truy vấn thứ tư có kết quả YES.

Ràng buộc và chấm điểm

Ràng buộc
  • ~1 \le n, q \le 2 \cdot 10^5~.
  • ~c~ chỉ gồm chữ cái tiếng Anh thường.
  • Dữ liệu cạnh tạo thành một cây.
  • Mọi đỉnh trong truy vấn đều thuộc đoạn ~[1, n]~.
Chấm điểm
  • Subtask~1~ ~(20\%)~: ~n, q \le 2000~.
  • Subtask~2~ ~(20\%)~: cây là một đường thẳng.
  • Subtask~3~ ~(25\%)~: mọi truy vấn có một đầu mút là gốc ~1~.
  • Subtask~4~ ~(35\%)~: không có ràng buộc bổ sung.

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.