我们先模拟一下,其实题目就是要我们从\(y\)这个位置开始跳,每次跳\(x\)步,然后把每次跳到的数的和加起来就是最终的答案
我们发现当\(x\)比较大的时候是可以暴力的,但是比较小的时候就不行了
这时就有一个套路了,我们找出一个分界点,比这个分界点大的时候我们暴力否则使用其他方法
那么使用其他方法怎么做呢?由于修改的是单点,我们转换一下考虑对象,考虑每个点对答案的贡献
这个时候就有题解的做法了(洛谷代码里面有个输入的小细节,见scanf里面的格式串)
其实最开始我还想了一个根号的算法,分成若干个长度为\(\sqrt{N}\)的块,然后在每一个块内进行跳跃,就是修改的时候常数很大(因为要枚举约数,约数最多的有二三十个,就算预处理也不行)
标签:分界点,暴力,冲突,哈希,时候,我们 From: https://www.cnblogs.com/dingxingdi/p/17936854