0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【競技プログラミング】pypyjitが無い環境でも再帰のおまじないを書きたい

Posted at

競プロで再帰処理を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が無ければ作ってしまえば良いじゃない。
このファイルを用意することで、マクロにおまじないを含めて置くことが出来る。
以上で再帰処理の時に考えることを増やさないで済んだ。
快適な競プロライフを~

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?