D. 数码魔力
数码魔力
秋招模拟赛第41场|2023.08.27-字节跳动秋招第二场
- Status
- Done
- Rule
- IOI
- Problem
- 4
- Start at
- 2023-9-8 19:00
- End at
- 2023-9-8 21:00
- Duration
- 2 hour(s)
- Host
- Partic.
- 38
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
先跟着灵神学一下 数位dp
然后你就会了...
因为其实就是一个非常裸的数位dp。刷过哪怕一道数位dp的题,你就能够立马反应过来。
在模板的基础上做一个更改:dfs的过程中转移当前数位的最大值mx。递归出口返回mx即可。
在古老的魔法书中,每一个正整数 n 都蕴含着一股魔力,其魔力值 M(n) 定义为 n 在十进制表示下所有数码中的最大值。例如 M(1012)=max{1,0,1,2}=2,M(988)=max{9,8,8}=9。
魔法师翻阅了书的第 x 页到第 y 页,他希望计算出这些页码的魔力值总和。由于结果可能非常巨大,请你帮他求出 (∑n=xyM(n))mod109+7 的值。
约束条件:页码 x 和 y 满足 1≤x≤y≤1018。
输入包含一行,两个整数 x 和 y,表示起止页码。
输出一个整数,表示所求魔力总和模 109+7 的结果。
输入
1 10
输出
46
说明
在区间 [1,10] 内,各个整数的魔力值分别为:
M(1)=1,M(2)=2,M(3)=3,M(4)=4,M(5)=5,M(6)=6,M(7)=7,M(8)=8,M(9)=9,M(10)=1。
总和为 46。
输入
99 101
输出
11
说明
我们需要计算 M(99)、M(100) 和 M(101)。
9 和 9,最大是 9,故 M(99)=9。1、0、0,最大是 1,故 M(100)=1。1、0、1,最大是 1,故 M(101)=1。
总和为 11。输入
1000000000000000000 1000000000000000000
输出
1
说明
页码 1018 的十进制表示为 1 后面跟着 18 个 0,所有数码中的最大值为 1,因此 M(1018)=1。
由于区间只包含这一个数,总和为 1。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册