XÂU NHỊ PHÂN

Cho một xâu nhị phân \(S\) (xâu chỉ gồm hai kí tự ‘0’ và ‘1’), xâu được bắt đầu từ vị trí \(1\). Gọi \(S\lbrack l,\ r\rbrack\) là một xâu con của xâu S gồm các kí tự liên tiếp của xâu S bắt đầu từ vị trí \(l\) đến vị trí \(r\ (1 \leq l \leq r \leq n).\) Gọi \(cnt\lbrack l,\ r\rbrack\) là số kí tự “1” của xâu con \(S\lbrack l,\ r\rbrack.\)

Yêu cầu: Đếm số xâu con \(S\lbrack l,\ r\rbrack\) của xâu \(S\) thỏa mãn \(r - l + 1\) chia hết cho \(cnt\lbrack l,\ r\rbrack.\)

Dữ liệu vào:

  • Gồm một dòng ghi xâu \(S\) có độ dài \(n\ \left( 1 \leq n \leq 10^{5} \right).\)

Kết quả:

  • Số lượng xâu con thỏa mãn yêu cầu của bài toán

Ví dụ:

bs.inp bs.out
1111 10
10110110 14
000011111 23

Ràng buộc:

  • Ràng buộc 1: có \(10\%\) số test tương ứng với \(10\%\) số điểm của bài có \(n \leq 1000;\)

  • Ràng buộc 2: có \(20\%\) số test tương ứng với \(20\%\) số điểm của bài thỏa mãn xâu không có hai kí tự \("0"\) liên tiếp;

  • Ràng buộc 3: có \(30\%\) số test tương ứng với \(30\%\) số điểm của bài thỏa mãn số kí tự “1” nhỏ hơn hoặc bằng \(300;\)

  • Ràng buộc 4: có \(40\%\) số test tương ứng với \(40\%\) số điểm của bài không có ràng buộc gì thêm.

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. trungnam (6/7)
  2. sythai (5/8)
  3. npk1605 (5/10)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

Lưu Hải Phong - 2020
[email protected]