题目描述
给,问1到n中每个数在各数位排序后得到的数的和。答案膜 。
思路点拨
不是很难,自己想一会可以想出来。
因为 比较大,所以我们考虑数位dp。因为每一种数组产生的贡献十分复杂,所以我们将每一数字拆开统计贡献。
如果我们认为 表示数字的位数,相信 是比较好的出的。我们枚举一个数字 ,则状态 表示目前考虑到第 位,比 小的有 位,比 大的有 位,目前有没有超出限制的 。转移比较简单,直接枚举下一位填什么,变动一下状态即可。但是不可以通过本题。
我们更改一下状态,我们定义 表示目前考虑到第 位,大于等于枚举的数 有 个,是否超出 的 。转移比较类似。这样怎么计算贡献呢?因为 的数位可以拆成 的贡献加上 的贡献。所以我们这么统计是可行的。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战