[Buổi 23][Chuyên đề Cấu trúc dữ liệu & Truy vấn đoạn][HW] Bài 1: Đoạn ký hiệu ổn định


LÀM BÀI

Points: 100
Time limit: 2.0s
Memory limit: 256M

Author:
Problem types

Đoạn ký hiệu ổn định

Bối cảnh và bài toán

Một chuỗi trạng thái chỉ gồm . và #. Với mỗi truy vấn [l,r], hệ thống cần đếm số vị trí i trong đoạn sao cho trạng thái tại i giống trạng thái tại i+1. Chuỗi không thay đổi giữa các truy vấn.

Yêu cầu

Trả lời tất cả truy vấn một cách hiệu quả.

Input

  • Dòng 1 chứa chuỗi s.
  • Dòng 2 chứa q.
  • q dòng tiếp theo chứa l r.

Output

In số cặp kề bằng nhau trong từng đoạn truy vấn.

Ràng buộc

  • 2 <= \|s\| <= 10^5
  • 1 <= q <= 10^5
  • 1 <= l < r <= \|s\|

Chấm điểm

Subtask Điểm Điều kiện Official tests
S1 20% |s|, q <= 30 01–02
S2 30% |s|, q <= 5000 03–05
S3 50% Không có ràng buộc bổ sung 06–10

Ví dụ 1

Input

......
4
3 4
2 3
1 6
2 6

Output

1
1
5
4

Giải thích. Mỗi cặp ký tự kề đều giống nhau.

Ví dụ 2

Input

#..###
5
1 3
5 6
1 5
3 6
3 4

Output

1
1
2
2
0

Giải thích. Ta chỉ đếm các vị trí i sao cho s[i]=s[i+1] nằm hoàn toàn trong đoạn.

Thông tin bài tập

Thuộc tính Giá trị
Mã bài DSA-M07-B23-HW01
Buổi B23
Loại bài HOMEWORK
Mức độ khó Dễ (Easy)
Thời gian làm bài khuyến nghị 25 phút
Time limit 2 giây
Memory limit 256 MB
Tổng điểm 100
Chuẩn ngôn ngữ tham chiếu C++11 trở lên

Nguồn: Phỏng theo Codeforces 313B – Ilya and Queries.


Comments

There are no comments at the moment.

Zalo