#5440. Problem 2. Strange Function

0

Problem 2. Strange Function

2. 奇怪的函数 (Strange Function)

USACO 2026 第三场竞赛, 铜组

对于所有正整数 xx,函数 f(x)f(x) 定义如下:

  • 如果 xx 包含任何不是 0011 的数字,则对于 xx 的每一位数字,若该位为奇数则将其设为 11,否则设为 00,然后返回 xx
  • 否则,返回 x1x-1

给定一个 xx (1x<1021051 \leq x < 10^{2\cdot 10^5}),求需要将 ff 应用多少次才能使 xx 变为 00。由于这个数可能非常大,输出其对 109+710^9+7 取模的余数。

输入格式(从终端 / 标准输入读入):

第一行包含 TT (1T1051\le T\le 10^5),表示独立测试用例的数量。

接下来 TT 行,每行包含一个正整数 xx,仅由数字 0-9 组成,没有前导零。

保证所有输入整数的总位数不超过 10610^6

输出格式(输出至终端 / 标准输出):

对于每个测试用例,在一行中输出操作次数对 109+710^9+7 取模的余数。

样例输入:


2
24680
210

样例输出:


1
4

第一个测试用例:xx 经过一次操作后变为 0。

第二个测试用例:f(x)=10f(x)=10, f2(x)=9f^2(x)=9, f3(x)=1f^3(x)=1, f4(x)=0f^4(x)=0

样例输入:


1
1234567890123456789012345678901234567890

样例输出:


511620083

评分标准:

  • 输入 3-5:T2000T\le 2000, x<109x< 10^{9}
  • 输入 6-7:x<1018x<10^{18}
  • 输入 8-9:x<1060x<10^{60}
  • 输入 10-12:无额外限制。

题目来源:Aidan Bai