[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
Đ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. qdòng tiếp theo chứal 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^51 <= q <= 10^51 <= 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