打打打打打字机|

realFish

园龄:3年1个月粉丝:3关注:0

CF908G 题解

题意

传送门

x10700,问 1x 中每个数在各数位排序后得到的数的和。答案模 109+7

题解

学到一种新鲜的转化方式,来记一下。

x 的位数记为 n。一个显然的想法是算贡献,即枚举 d[0,9],i[1,n],算 di 位上出现的次数。但尝试了一会,发现难以处理。

此时我们将数字 i[0,9] 拆为 111¯i 的形式,并竖着写下来。那么任意一个数可以表示为不超过 9111 的和的形式。例如 3459 就是:

1111+1111+1111+111+11+1+1+1+1

然后再算贡献。枚举 d[1,9],i[1,n],那么答案加上:大于等于 d 的数字出现了恰好 i 次的数的个数 ×111i。前面部分是个简单的数位 DP。于是此题得解。

本文作者:realFish的博客

本文链接:https://www.cnblogs.com/fish07/p/17068903.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   realFish  阅读(31)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起