Trạm gác đối xứng

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

Một trạm gác lưu một dãy ký hiệu ~s~. Trong quá trình hoạt động, hệ thống có thể thay đổi một ký hiệu ở một vị trí bất kỳ, đồng thời cần kiểm tra nhanh một đoạn ký hiệu có đối xứng hay không.

Một xâu được gọi là đối xứng nếu đọc từ trái sang phải giống đọc từ phải sang trái.

Yêu cầu

Cho xâu ban đầu ~s~ và ~q~ thao tác thuộc một trong hai loại:

  • 1 i c: đổi ký tự tại vị trí ~i~ thành ký tự ~c~.
  • 2 l r: kiểm tra xâu con ~s[l..r]~ có đối xứng hay không.

Với mỗi thao tác loại ~2~, in YES nếu đoạn được hỏi là đối xứng, 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 ~s~ có độ dài ~n~.
  • Mỗi dòng trong ~q~ dòng tiếp theo mô tả một thao tác theo một trong hai dạng trên.

Các chỉ số trong xâu được đánh số từ ~1~.

Kết quả

Với mỗi thao tác loại ~2~, ghi ra một dòng là YES hoặc NO.

Ví dụ

Ví dụ 1

Input

7 7
abacaba
2 1 7
2 2 6
1 3 d
2 1 7
2 3 5
1 3 a
2 1 7

Output

YES
YES
NO
NO
YES
Ví dụ 2

Input

5 5
abcde
2 1 5
1 5 a
2 1 5
1 2 d
2 1 5

Output

NO
NO
YES

Giải thích

Ví dụ 1

Ban đầu ~s = \text{abacaba}~ nên cả đoạn ~s[1..7]~ và ~s[2..6]~ đều đối xứng. Sau khi đổi ~s_3~ thành ~\text{d}~, xâu trở thành ~\text{abdcaba}~, nên đoạn ~s[1..7]~ không còn đối xứng.

Sau khi đổi ~s_3~ lại thành ~\text{a}~, xâu trở về ban đầu.

Ví dụ 2

Ban đầu ~\text{abcde}~ không đối xứng. Sau khi đổi ký tự cuối thành ~\text{a}~, xâu ~\text{abcda}~ vẫn không đối xứng. Sau khi đổi ký tự thứ hai thành ~\text{d}~, xâu trở thành ~\text{adcda}~ và đối xứng.

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

Ràng buộc
  • ~1 \le n, q \le 2 \cdot 10^5~.
  • ~s~ chỉ gồm chữ cái tiếng Anh thường từ ~\text{a}~ đến ~\text{z}~.
  • Trong thao tác 1 i c: ~1 \le i \le n~ và ~c~ là chữ cái tiếng Anh thường.
  • Trong thao tác 2 l r: ~1 \le l \le r \le n~.
Chấm điểm
  • Subtask~1~ ~(25\%)~: ~n, q \le 2000~.
  • Subtask~2~ ~(25\%)~: không có thao tác cập nhật.
  • Subtask~3~ ~(50\%)~: 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.