[AGC011E] Increasing Numbers

Link

思维题。

以下是官方做法。

考虑将不降数不进位相加,则最终结果可以看成 i=0ai10i,其中 aiai+1

显然,对于一个固定的 a 序列,最优解不小于 a09 ,且存在一种恰好为 a09的方案,构造如下。

xi 表示第 i 个数,则考虑其十进制表示 xi=j=0xi,j×10jxi,j=min(9,aj9×(i1))
所以我们要做的是让 a0 最小。

考虑等价变换。将一种划分等价为

N=i=1a01111=i=1a010ri19

9N+a0=i=1a010ri

考虑到 i=1a010ri 能且仅能表示所有数字和为 t 的数。
可以发现 a0 可行充要于左边数字和小于等于 a0 且左边数字和与 a09 同余,但模 9 同余的条件显然是满足的。

发现答案不是很大,直接枚举即可,显然上界 O(n) 次,因此复杂度为 O(n)


考虑一个更简单的做法:每次直接选一个最大的 Increasing Number。

显然,对 a 序列进行如下操作不会使答案变大:

posted @   pref_ctrl27  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示