哈希冲突

我们先模拟一下,其实题目就是要我们从\(y\)这个位置开始跳,每次跳\(x\)步,然后把每次跳到的数的和加起来就是最终的答案

我们发现当\(x\)比较大的时候是可以暴力的,但是比较小的时候就不行了

这时就有一个套路了,我们找出一个分界点,比这个分界点大的时候我们暴力否则使用其他方法

那么使用其他方法怎么做呢?由于修改的是单点,我们转换一下考虑对象,考虑每个点对答案的贡献

这个时候就有题解的做法了(洛谷代码里面有个输入的小细节,见scanf里面的格式串)

其实最开始我还想了一个根号的算法,分成若干个长度为\(\sqrt{N}\)的块,然后在每一个块内进行跳跃,就是修改的时候常数很大(因为要枚举约数,约数最多的有二三十个,就算预处理也不行)

posted @ 2023-12-30 21:33  最爱丁珰  阅读(1)  评论(0编辑  收藏  举报