CFgym104369J 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)\).
可能我比较唐。