P13313 [GCJ 2012 Qualification] Recycled Numbers

题目描述

你是否曾因电视节目总是反复播放相同内容而感到烦躁?其实我对电视并不在意,但有时我会对数字也有类似的感觉。 我们称一对不同的正整数 $(n, m)$ 为**可循环对**,如果你可以通过把 $n$ 的后面若干位数字移到最前面(且不改变这些数字的顺序)得到 $m$。例如,$(12345, 34512)$ 是一个可循环对,因为你可以把 $12345$ 的末尾 $345$ 移到最前面,得到 $34512$。注意,$n$ 和 $m$ 必须位数相同,且都不能有前导零。 给定两个整数 $A$ 和 $B$,它们具有相同的位数且都没有前导零。请问有多少不同的可循环对 $(n, m)$ 满足 $A \leqslant n < m \leqslant B$?

输入格式

输入的第一行为测试用例数 $T$。接下来有 $T$ 组测试数据,每组一行,包含两个整数 $A$ 和 $B$。

输出格式

对于每个测试用例,输出一行,格式为 "Case #x: y",其中 $x$ 为测试用例编号(从 1 开始),$y$ 为满足 $A \leqslant n < m \leqslant B$ 的可循环对 $(n, m)$ 的个数。

说明/提示

**我们确定第 4 组样例的输出吗?** 是的,我们确定第 4 组样例的输出为 287。 **限制条件** - $1 \leq T \leq 50$ - $A$ 和 $B$ 的位数相同 **测试集 1(10 分,可见结果)** - $1 \leq A \leq B \leq 1000$ **测试集 2(15 分,隐藏结果)** - $1 \leq A \leq B \leq 2 \times 10^6$ 翻译由 ChatGPT-4.1 完成。