题解:AT_abc379_e [ABC379E] E - Sum of All Substrings

很水的一道题。

我们先把题目上各地的数字看成一个序列,然后考虑计算该序列分别会对答案的每一位产生多少贡献。

具体的,我们从后往前考虑答案的每一位。通过简单推演可知,设你当前考虑到答案的第 \(i\) 个数字,那么原序列对这一位的贡献为 \(\sum_{j=1}^{n-i+1}a_j\times j\)

这个东西显然可以预处理,这样答案每一位的贡献就计算出来了。

但是我们需要考虑进位的问题,也就是说,我们用一个变量 \(sum\) 统计当前的进位。设当前这一位计算出来的贡献为 \(ans\),那么答案的这一位就是 \((ans+sum)\% 10\),同时让 \(sum\leftarrow \frac{sum+ans}{10}\) 即可。

这样填完答案的每一位以后我们需要判断此时 \(sum\) 是否为 \(0\),如果不是还需要再计算一位。

最后把答案倒序输出即可。

提交记录

posted @ 2024-11-09 23:52  Redamancy_Lydic  阅读(76)  评论(0编辑  收藏  举报