My Blogs
[ARC145D] Non Arithmetic Progression Set
考慮三進位制,如果只選只有 \(01\) 的數就一定合法。
然後可以考慮平移,即每個數同時 \(\pm C\)。如果原序列合法,經過該操作之後一定仍然合法。所以只需要構造一個序列,使得和 \(\bmod\;n\) 意義下和 \(m\) 同餘。
暴力選取最小的 \(n-1\) 個合法三進位制數,接下來補一個非常大的數,使得 \(sum\) 同餘 \(m\),打表可以發現第 \(9999\) 個合法的數是 \(1.7\times 10^6\) 左右,所以補的數如果接近上界就不會出現不合法的情況。
最後再算一下差值,透過平移把 \(sum\) 變成 \(m\)。