QOJ.ac

QOJ

حد الوقت: 60 s حد الذاكرة: 1024 MB مجموع النقاط: 45

#12469. 可整除的划分

الإحصائيات

我们有一个由十进制数字组成的字符串 $S$。$S$ 的一个划分是通过将 $S$ 分割成若干个连续的子串而创建的。例如,如果 $S$ 是 $0145217$,两种可能的划分为 $014\ 5\ 21\ 7$ 和 $0\ 14\ 52\ 17$。每个数字必须恰好被使用一次,且每个子串必须非空。如果 $S$ 有 $L$ 位数字,则它共有 $2^{L-1}$ 种可能的划分。

给定一个正整数 $D$,$S$ 的一个划分被称为可被 $D$ 整除,如果对于每一对相邻的子串,它们所表示的十进制整数中至少有一个能被 $D$ 整除。如果 $D=7$,上述第一个划分是可被整除的,因为 $014$、$21$ 和 $7$ 所表示的整数都能被 $7$ 整除。第二个划分不可被整除,因为 $52$ 和 $17$ 是相邻子串,且它们所表示的整数都不能被 $7$ 整除。将 $0145217$ 划分为 $0145217$ 本身是可被任何 $D$ 整除的,因为不存在相邻的子串对。

给定 $S$ 和 $D$,计算 $S$ 有多少种可被 $D$ 整除的划分。由于输出可能非常大,我们仅要求你输出结果除以质数 $10^9+7$ ($1000000007$) 的余数。

输入格式

第一行输入包含测试用例的数量 $T$。接下来有 $T$ 行。每行代表一个测试用例,包含一个数字字符串 $S$ 和一个正整数 $D$。

输出格式

对于每个测试用例,输出一行 Case #x: y,其中 $x$ 是测试用例编号(从 1 开始),$y$ 是 $S$ 可被 $D$ 整除的划分数量,对质数 $10^9+7$ ($1000000007$) 取模。

数据范围

$1 \le T \le 100$。 $1 \le D \le 10^6$。

子任务 1 $1 \le |S| \le 1000$。

子任务 2 $1 \le |S| \le 10^5$。

样例

样例输入 1

3
0145217 7
100100 10
5555 12

样例输出 1

Case #1: 16
Case #2: 30
Case #3: 1

说明

在样例 1 中,$S$ 的所有 16 种可被整除的划分如下: $0145217$,$0\ 145217$,$0\ 14\ 5217$,$0\ 14\ 5\ 217$,$0\ 14\ 5\ 21\ 7$,$0\ 14\ 521\ 7$,$0\ 145\ 217$,$0\ 145\ 21\ 7$,$0\ 14521\ 7$,$014\ 5217$,$014\ 5\ 217$,$014\ 5\ 21\ 7$,$014\ 521\ 7$,$0145\ 217$,$0145\ 21\ 7$ 以及 $014521\ 7$。

在样例 2 中,总共有 $2^5 = 32$ 种划分方式。为了使两个相邻子串都不被 $10$ 整除,我们需要它们都不以 $0$ 结尾。唯一满足条件的划分方式是 $1\ 001\ 00$ 和 $1\ 001\ 0\ 0$,这意味着 $S$ 的其余 30 种划分都是可被 $10$ 整除的。

在样例 3 中,没有任何子串表示的整数是偶数,这意味着它们都不能被 $12$ 整除。因此,要避免出现两个相邻子串都不被 $12$ 整除的情况,唯一的方法就是不出现相邻子串,这只有 1 种方式:$5555$。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.