首先一个观察是随着 \(n\) 的增大,最长的区间肯定是增大的,因此可以直接把等式放缩成 \(\leq n\)。
另一个观察使为了使区间长度最大,左右端点肯定是顶着两个 \(a\) 的,不妨设其为 \(al+1\) 和 \(ar-1\)。
将 \(a,b\) 先搞成互质的,那么现在的问题是我们需要最大化区间内 \(a\) 的个数,也即最大化 \(b\) 的个数。如果 \(al+1\) 位置恰好是一个 \(b\),那么这样是最优的,而根据裴蜀定理这是一定可以取到的,所以可以用 exgcd 解出一组最大 \(r-l\) 的 \(l,r\)。
然后我们需要使 \(l\) 最小。因为 \((b-(al+1))\bmod b\) 可以看成前面空着的,因此可以列出 \(al\bmod b\geq w\) 的不等式,这个不等式可以用类欧去找到最小的 \(l\)。不想写类欧去 jiangly 那里贺了一个(
时间复杂度 \(O(T\log a)\)。
标签:bmod,欧去,al,Buzz,ARC166E,Difference,Fizz From: https://www.cnblogs.com/275307894a/p/17753713.html