F - 321-like Searcher 解説 by math_hiyoko

Pythonのコンパイルコマンドでの実行を利用した全列挙

この解法はジャッジ時のPythonのコンパイルコマンドで仮のプログラム実行が60sec程度を上限に行われるという、この解説執筆時のAtCoderでの仕様を利用したものです。この仕様は公式に宣言されたものではないので、今後この解法が使えなくなる可能性もあります。ご注意ください。

この問題に解答するには321-likeな数を全て調べることができれば十分です。A問題で、与えられた数が321-likeかどうか判定するプログラムを作成していますので、これを用いて321-likeな数を全て探し出します。

321-likeな数を\(N\)とすると
\(1\leq N\leq 98,765,432\)
\(876,543,210\leq N\leq 987,654,321\)
\(9,876,543,210 \leq N \leq 9,876,543,210\)
のいずれかを満たすので、この範囲の全ての整数について321-likeかどうかの判定を行えば十分です。これはPyPyで60sec以内にできるので、コンパイルコマンドでプログラムが実行されたときにこれを行い、.npyファイルなどのファイルに321-likeな数の一覧を保存しておくことで、実行時にはこのファイルを読み出すことで解答ができるようになります。

実装例

投稿日時:
最終更新: