競プロで再帰処理をPyPyで提出する時
AtCoderにおいてPython言語で提出する時、ほぼ全ての処理はPythonよりPyPyで提出した方が処理時間が速い。
ただ、再帰処理においてはPythonの方が速い傾向にある。
そこでPyPyでも処理を速くするためのおまじないがある。
import pypyjit
pypyjit.set_param('max_unroll_recursion=-1')
sys.setrecursionlimit(10**7)
この三行を書くとPyPyでも再帰を高速に実行することができる。
だがこれをマクロに含めてしまうと、PyPyではない環境でコンテストに出ている時にimport出来なくてデバッグがやりづらい。
そして、これを外してデバッグして提出する時に忘れることも多い。
これを解決したい。
解決策:このファイルをローカルに用意する
pypyjit.py
def set_param(st): pass
pypyjitが無ければ作ってしまえば良いじゃない。
このファイルを用意することで、マクロにおまじないを含めて置くことが出来る。
以上で再帰処理の時に考えることを増やさないで済んだ。
快適な競プロライフを~