专栏文章

题解:CF1513C Add One

CF1513C题解参与者 3已保存评论 2

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
2 条
当前快照
1 份
快照标识符
@miqqwyee
此快照首次捕获于
2025/12/04 09:17
3 个月前
此快照最后确认于
2025/12/04 09:17
3 个月前
查看原文
第一点注意:当 99 变为 1010 的时候是直接多出来一位,而不是进一位,这里翻译没有注意到这一点,但原题面中体现了。
既然如此,我们可以把每一位都拆分开,即把每一位都当成一个独立的数,最后计算每一位的答案总和即可。
对于每一位考虑的话,就只有 090\sim91010 种情况,只需要对这 1010 个数变换所有次数预处理下来即可。
容易发现,如果初始数字 xx 加上变换次数 kk 小于 1010 则不会进位。进位后,由 99 变成 1010,需要加上 11 变换 k10k-10 次和 00 变换 k10k-10 次的答案和。
这样的话就像一个动态规划问题了,设 fi,jf_{i,j} 表示 ii 变换 jj 次后的位数,则状态转移方程为:
fi,j={1i+j9f0,i+j10+f1,i+j10i+j10f_{i,j} = \begin{cases} 1 & i+j\le9\\ f_{0,i+j-10}+f_{1,i+j-10} & i+j\ge10 \end{cases}
i[0,9]i\in[0,9]j[0,2×105]j\in[0,2\times10^5],枚举即可。

评论

2 条评论,欢迎与作者交流。

正在加载评论...