#ABC158E. 可整除子串

可整除子串

可整除子串

题目描述

高桥君有一个由 09 的数字组成的、长度为 NN 的字符串 SS

喜欢素数 PP 的高桥君想知道,在 SS 的非空连续子串共 N×(N+1)/2N \times (N + 1) / 2 个中,把它们看作十进制表示的整数时,能被 PP 整除的有多少个。

但是,子串开头可以是 0,并且即使字符串相同或看作整数时相同,只要在 SS 中的位置不同就视为不同的子串。

请帮高桥君计算这个个数。

输入格式

输入按以下格式从标准输入给出:

NN PP
SS

输出格式

输出 SS 的非空连续子串中,看作十进制表示的整数时能被 PP 整除的个数。

样例

4 3
3543
6

SS = 3543SS 的非空连续子串有以下 1010 个:

  • 3 能被 33 整除。
  • 35 不能被 33 整除。
  • 354 能被 33 整除。
  • 3543 能被 33 整除。
  • 5 不能被 33 整除。
  • 54 能被 33 整除。
  • 543 能被 33 整除。
  • 4 不能被 33 整除。
  • 43 不能被 33 整除。
  • 3 能被 33 整除。

其中能被 33 整除的有 66 个,因此输出 66

4 2
2020
10

SS = 2020SS 的非空连续子串有 1010 个,它们都能被 22 整除,因此输出 1010

注意开头为 0 的子串也是允许的。

20 11
33883322005544116655
68

数据范围

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • SS 由数字组成
  • S=N|S| = N
  • 2P100002 \leq P \leq 10000
  • PP 是素数
难度 提高
通过率
尝试 0
已通过 0
ID
1894
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签