Official

F - Coprime Present Editorial by kyopro_friends


この問題は COLOCON 2018 C問題 の制約強化版です。

\(A\) 以上 \(B\) 以下の相異なる \(2\) つの数 \(n>m\) について、\(GCD(n,m)=GCD(n-m,m)\leq n-m \leq B-A\) がなりたちます。つまり、もし \(n,m\) が互いに素でないならば、\(n,m\) はともに \(2\) 以上 \(B-A\) 以下のある数の倍数です。

したがって、条件を満たすような集合の必要十分条件は、\(2\) 以上 \(B-A\) 以下のどの数 \(d\) についても \(d\) の倍数が高々 \(1\) 個しか含まれないことです。また、特に \(d\) としては素数のみを考慮すれば十分です。

どの素数の倍数を既に選んだかを状態に持つbitDPにより、\(N=B-A\) として、\(O(N2^{\pi(N)})\) で求めることが出来ます(\(\pi(N)\)\(N\) 以下の素数の個数を表す)。\(B-A\) の最大値である \(72\) 以下の素数は \(20\) 個なので、この解法は十分高速です。

posted:
last update: