给 n,k,p,x
求 [1,n][1,n][1,n] 中 kkk 的倍数对 ppp 取模后小于等于 xxx 的个数
所有数都是 1 ~ 1e10
我有一个根号分治:
因为 k 的倍数对 p 取模一定有一个长度为 p 的循环节,当 p < 1e5 时,就暴力算一个循环节的答案,然后乘个多少倍再加上散块,这样做
当 p > 1e5 时,考虑拆成这样 [i⋅p,x+i⋅p][i\cdot p,x+i\cdot p][i⋅p,x+i⋅p],这就只有根号段,所以每一段直接算有多少个数时 kkk 的倍数即可
大伙看看怎么样?我有没有脑丑?