很水的一道题。
我们先把题目上各地的数字看成一个序列,然后考虑计算该序列分别会对答案的每一位产生多少贡献。
具体的,我们从后往前考虑答案的每一位。通过简单推演可知,设你当前考虑到答案的第 \(i\) 个数字,那么原序列对这一位的贡献为 \(\sum_{j=1}^{n-i+1}a_j\times j\)。
这个东西显然可以预处理,这样答案每一位的贡献就计算出来了。
但是我们需要考虑进位的问题,也就是说,我们用一个变量 \(sum\) 统计当前的进位。设当前这一位计算出来的贡献为 \(ans\),那么答案的这一位就是 \((ans+sum)\% 10\),同时让 \(sum\leftarrow \frac{sum+ans}{10}\) 即可。
这样填完答案的每一位以后我们需要判断此时 \(sum\) 是否为 \(0\),如果不是还需要再计算一位。
最后把答案倒序输出即可。
标签:题解,Sum,一位,Substrings,答案,ans,贡献,sum From: https://www.cnblogs.com/Lydic/p/18537495