[ARC145D] Non Arithmetic Progression Set

WrongAnswer_90發表於2024-04-25

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\)

相關文章