HDU6624

题意

为方便变量命名,这里题意中的变量与原题意不同,请仔细辨认

多测(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的常数大了几倍,可能要交几遍才能过

原文地址:https://www.cnblogs.com/Grice/p/14047110.html