#146 · divisible-divisions-8d99ba

可整除的划分

Not startedHard
Time10.0 s
Memory1,024 MB
Submissions0
Acceptance0.0%
0%100%

Statement

我们有一个由十进制数字组成的字符串 。 的一个 *划分* 是通过将 分割成连续子串而创建的。
例如,如果 是 0145217,两个可能的划分是
014 5 21 7 和 0 14 52 17。每个数字必须恰好用于一个子串中,且每个子串必须非空。如果 有 个数字,那么它恰好有 种可能的划分。

给定一个正整数 ,如果对于每一对连续的子串,它们所表示的十进制整数中至少有一个能被 整除,则称 的一个划分能被 *整除*。
如果 ,上面第一个示例划分是可整除的,因为 014、21 和 7 表示的整数都能被 整除。第二个示例划分不可整除,因为 52 和 17 是连续子串,且它们表示的整数都不能被 整除。将 0145217 划分为 0145217 对任何 都是可整除的,因为没有连续子串对。

给定 和 ,计算存在多少个 的划分能被 整除。
由于输出可能非常大,我们只要求你输出结果除以质数 () 的余数。

Input

输入的第一行给出测试用例的数量 。接下来有 行。
每行代表一个测试用例,包含一个数字字符串 和一个正整数 ,如上所述。

### 数据范围

- .
- .
- 的长度 .
- 的长度 .

Output

对于每个测试用例,按测试用例顺序逐个输出答案,输出一行,包含 $y$,
其中 是能被 整除的 的不同划分的数量,对质数 () 取模。

Examples

Example 1

Input

3
0145217 7
100100 10
5555 12

Output

16
30
1

Constraints

  • Time limit: 10000 ms
  • Memory limit: 1048576 KB
  • Tag: dynamic-programming
  • Tag: math
  • Tag: string

Loading language catalog...