Bài 2: Xâu đối xứng (Chọn HSG cấp tỉnh THPT Gia Lai 2025-2026)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1500 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

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

Cho một xâu S có độ dài N, chỉ gồm các ký tự chữ cái in thường từ a đến z.

Q truy vấn, mỗi truy vấn gồm hai số nguyên LR.

Với mỗi truy vấn, hãy đếm số lượng cặp (X, Y) thỏa mãn:

\(L \le X \le Y \le R.\)
Xâu con từ vị trí X đến vị trí Y của xâu S là một xâu đối xứng.

Nói cách khác, với mỗi đoạn [L, R], hãy đếm số lượng xâu con đối xứng nằm hoàn toàn trong đoạn đó.

Yêu cầu

Với mỗi truy vấn [L, R], hãy in ra số lượng xâu con đối xứng của xâu S nằm trong đoạn từ L đến R.

Input

  • Dòng đầu tiên chứa xâu S có độ dài N (\(1 \le N \le 5000\)), chỉ gồm các chữ cái in thường.
  • Dòng thứ hai chứa số nguyên Q (\(1 \le Q \le 10^5\)).
  • Q dòng tiếp theo, mỗi dòng chứa hai số nguyên LR (\(1 \le L \le R \le N\)).

Output

  • In ra Q dòng.
  • Dòng thứ i là số lượng xâu con đối xứng nằm hoàn toàn trong đoạn tương ứng với truy vấn thứ i.

Example

Test 1

Input
caaaba 
5 
1 1 
1 4
2 3
4 6 
4 5
Output
1 
7
3
4 
2
Note

Với xâu ban đầu S = "caaaba".

  • Truy vấn 1 1:
    • Đoạn xét là "c".
    • 1 xâu con đối xứng là "c".
  • Truy vấn 1 4:
    • Đoạn xét là "caaa".
    • 7 xâu con đối xứng: S[1..1] = "c", S[2..2] = "a", S[3..3] = "a", S[4..4] = "a", S[2..3] = "aa", S[3..4] = "aa", S[2..4] = "aaa".

Scoring

  • Subtask 1 (\(20\%\) số điểm): \(N, Q \le 100\).
  • Subtask 2 (\(40\%\) số điểm): \(N, Q \le 300\).
  • Subtask 3 (\(20\%\) số điểm): \(N, Q \le 2000\).
  • Subtask 4 (\(20\%\) số điểm): Không có ràng buộc nào thêm.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: