Truy Vấn Palindrome

Đề bài

Mô tả

Cho xâu gồm n ký tự thường. Xử lý m thao tác:

  • Thao tác 1: thay đổi ký tự tại vị trí k thành x.
  • Thao tác 2: kiểm tra xâu con từ vị trí a đến b có phải palindrome không.

Dữ liệu vào

Dòng đầu tiên chứa hai số nguyên n và m: độ dài xâu và số thao tác.

Dòng thứ hai chứa xâu ban đầu.

  • m dòng tiếp theo, mỗi dòng mô tả một thao tác: "1 k x" (thay ký tự) hoặc "2 a b" (kiểm tra palindrome).

Dữ liệu ra

Với mỗi thao tác loại 2, in ra "YES" nếu xâu con là palindrome, ngược lại in "NO".

Ràng buộc

  • 1≤n,m≤2×105
  • 1≤k≤n
  • 1≤a≤b≤n

Ví dụ

Input Output Giải thích
7 5
aybabtu
2 3 5
1 3 x
2 3 5
1 5 x
2 3 5
YES
NO
YES
"bab" là palindrome; sau thay đổi "xab" không phải; sau thay đổi tiếp "xax" là palindrome

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0