让人觉得脑子不够用的构造
考虑对于一个区间\([l,r]\)如何让它调整使得最后的结果恰好加上\(1\)。
注意到对于一个\(<10^{18}\)的数\(x\),\(f(x+10^{18}) = f(x)+1\),所以如果\(r-l = 10^{18} - 1\)且\(l < 10^{18}\),那么将区间\([l,r]\)变为区间\([l+1,r+1]\)之后,答案恰好增加\(1\)。
而\(a \leq 10^{18}\),所以我们初始取\(l=0,r=10^{18}-1\),之后不断将区间\([l,r]\)变为区间\([l+1,r+1]\),一定可以在不超过\(10^{18}\)次内找到满足\(\bmod\ a=0\)的\(l,r\),也就是每一次从\([l,r]\)变为\([l+1,r+1]\)时\(l < 10^{18}\),所以这样是一定可以构造出方案的。
那么我们最后需要做的事情就是求\(\sum\limits_{i=0}^{10^{18}-1}f(i)\)的值了。
\(\begin{align*} \sum\limits_{i=0}^{10^{18}-1} f(i) & = 45 \times 10^{17} + 10 \times \sum\limits_{i=0}^{10^{17}-1} f(i) \\ & = 45 \times 10^{17} + 450 \times 10^{16} + 100 \times \sum\limits_{i=0}^{10^{16}-1} f(i) \\ &= ... \\ &= 45 \times 18 \times 10^{17} \\ &= 8.1 \times 10^{19} \end{align*}\)
那么我们令\(l = a - (8.1 \times 10^{19} \mod a) , r = l + 10^{18}-1\),就是一组合法的解。
注意上面保证了\(l \neq 0\)
都说到这里了你难道不会写代码吗?