CFgym104369J X Equals Y

发布时间 2023-09-15 19:40:47作者: SError

X Equals Y

GDCPC2023.

今天 Coach VP 的时候没思考出来,想一想还是十分简单的。


给出 \(x,y,A,B\),构造一对 \((a,b)\) 满足 \(2\le a\le A\)\(2\le b\le B\),且 \(x\)\(a\) 进制下与 \(y\)\(b\) 进制下相同。

多测。\(T\le 10^3\)\(1\le x,y\le 10^9\)\(2\le A,B\le 10^9\).


如果 \(A\ge x\)\(B\ge y\),构造 \(a=A\)\(b=B\) 即可。

否则两个数的位数一定 \(\ge 2\),此时不妨令 \(A\leftarrow x-1\)\(B\leftarrow y-1\).

根号分治。

对于 \(a\in[2,\min(\sqrt{x},A)]\)\(b\in[2,\min(\sqrt{y},B)]\),两个数的位数 \(>2\).

枚举 \(a\),可以二分出来 \(b\) 的值,时间复杂度 \(O(\sqrt{n}\log n)\).

再看 \(a\in(\sqrt{x},A]\)\(b\in(\sqrt{y},B]\) 的情况,两个数的位数为 \(2\).

不妨令 \(x\ge y\).

此时满足

\[\lfloor\frac{x}{a}\rfloor=\lfloor\frac{y}{b}\rfloor,x-a\cdot\lfloor\frac{x}{a}\rfloor=y-b\cdot\lfloor\frac{y}{b}\rfloor \]

记向下整除式为 \(t\).

\[x-at=y-bt\Longrightarrow x-y=(a-b)t \]

枚举 \(x-y\) 的因数 \(t\),可以得到 \(a\) 的范围和 \(b\) 的范围,尝试构造 \(a,b\) 即可.

\(t\) 的个数是 \(O(\sqrt{n})\) 的。故时间复杂度 \(O(n)\).

总时间复杂度 \(O(T\sqrt{n}\log n)\).

可能我比较唐。