题意
为方便变量命名,这里题意中的变量与原题意不同,请仔细辨认
多测(T(le 10^5))
给定(p,b(1<b<p)),求最小的(x),使得(bx\% p<x)
(3le ple 10^{15},pin prime)
做法
(x)合法,及满足(0le bx\%p<x),其等价于(exists y),(s.t.~0le bx-py<x)
通过简单的变形:(frac{p}{b}le frac{x}{y}<frac{p}{b-1})
若([frac{p}{b},frac{p}{b-1}))中有整数很容易解决
下面考虑(y eq 1)的情况
考虑在Stern-Brocot Tree上定位(frac{p}{b},frac{p}{b-1})的位置
观察1:这两个节点(a,b)的(lca),(lca eq a)且(lca eq b)
证明:
(3le ple 10^{{15}},1<b<p)
观察2:最小的(x)为(lca)的分子
(O(logV))定位,(O(logV))寻找(lca)
总复杂度(O(TlogV))
但显然,这比std的常数大了几倍,可能要交几遍才能过