[CCPC 2023 北京市赛] 报数 IV

Luogu
IDLGP10049
Time1000ms
Memory512MB
DifficultyP5
2023省赛/邀请赛
对于任意正整数 $n$,定义函数 $f(n)$ 为 $n$ 在十进制下各个数位之和,如 $f(114514)=1+1+4+5+1+4=16$。显然 $f(n)$ 也是正整数,因此可以嵌套地考虑 $f(f(n)),f(f(f(n)))$ 等等。进而对于正整数 $n,k$ 可以定义 $g(n,k)=f(f(...f(n)))$(共有 $k$ 层 $f$)。 为了让报数游戏不再每局都是一模一样的,小 R 和小 Z 决定为每局游戏设置两个正整数 $k,m$,然后规定:在这一局游戏中,所有满足 $g(n,k)=m$ 的正整数 $n$ 都是不能报出的。 因为两人都是游戏高手,为防止游戏无限进行下去,每局游戏中还给出了一个正整数 $N$ 表示报数的上界。两人想知道:在不超过 $N$ 的正整数中,有多少是按这个规则不能报出的。 ## Input 第一行:一个正整数 $T$,表示小 R 和小 Z 进行的游戏轮数,保证 $1 \le T \le 5$。 接下来 $T$ 行,每行 $3$ 个正整数 $N,k,m$,描述一局游戏,含义如上文所述。保证 $1 \le N \le 10^{1000}, 1 \le k,m \le 10^9$。 ## Output 输出 $T$ 行,每行一个整数,表示这局游戏中不能报出的数的个数,对 $10^9+7$ 取模。 [samples] ## Background 这是小 R 和小 Z 第四次玩报数游戏了,因此他们决定不再编冗长的题面了。你只需要知道,他们又编了一个奇怪的报数规则,然后想算一下有哪些数字可以报出来。 ## Note 第一局游戏中,不能报出的数有 $5,14,23,32,41,50,104,113$。
Samples
Input #1
2
114 1 5
514 2 10
Output #1
8
10
API Response (JSON)
{
  "problem": {
    "name": "[CCPC 2023 北京市赛] 报数 IV",
    "description": {
      "content": "对于任意正整数 $n$,定义函数 $f(n)$ 为 $n$ 在十进制下各个数位之和,如 $f(114514)=1+1+4+5+1+4=16$。显然 $f(n)$ 也是正整数,因此可以嵌套地考虑 $f(f(n)),f(f(f(n)))$ 等等。进而对于正整数 $n,k$ 可以定义 $g(n,k)=f(f(...f(n)))$(共有 $k$ 层 $f$)。 为了让报数游戏不再每局都是一模一样的,小 ",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P5"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP10049"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "对于任意正整数 $n$,定义函数 $f(n)$ 为 $n$ 在十进制下各个数位之和,如 $f(114514)=1+1+4+5+1+4=16$。显然 $f(n)$ 也是正整数,因此可以嵌套地考虑 $f(f(n)),f(f(f(n)))$ 等等。进而对于正整数 $n,k$ 可以定义 $g(n,k)=f(f(...f(n)))$(共有 $k$ 层 $f$)。\n\n为了让报数游戏不再每局都是一模一样的,小 ...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments