AtCoderではnumpyが使えますがcodeforcesではnumpyは使えないことは一部界隈では有名です.(codeforcesでもnumpy使えるようになっていたらごめんなさい🙇)そんなこともありAtCoderで使える外部ライブラリの一覧をググってたのですが見つからなかったので調べてみました.
AtCoderで使えるPythonの外部ライブラリの一覧
- cython
- version: 0.29.16
- そもそもcythonで提出できるのでimportすることは無い?
- joblib
- version: 0.14.1
- 手軽に並列化を行えるライブラリ.試してみたがAtCoder上では直列にしか処理できないみたい.(使っても早くならない)
- networkx
- version: 2.4
- グラフを扱えるライブラリ.これがあればダイクストラとかなんかは書くだけになる.ただ速度は速くないので問題のサイズが大きいとTLEさせずに通すのは難しそう.
- numba
- version: 0.48.0
-
@jit
でデコレートするだけで高速化できる
- numpy
- version: 1.18.2
- みんな大好きnumpy.ブロードキャストしてくれるので数式的な感覚で書けるうえに速い.
- scikit-learn
- version: 0.22.2.post1
- 機械学習でよく使われているやつ.競技プログラミングで使う場面は思いつかないが...いい使い方ご存じの方教えてください.
- scipy
- version: 1.4.1
- 数値計算のためのライブラリ.numpyで十分な場面が多そう.
- decorator
- version: 4.4.2
- デコレータのためのやつ
- pyximport
- cythonで必要なもの?
- llvmlite
- version: 0.31.0
- numbaのために必要なライブラリ?
調べ方
pip list
で一覧表示はできないので,AtCoderのコードテスト上でポチポチ調べていきます.
- ライブラリがinstallされてるpathの推測
import sys
print(sys.path)
>>> ['/imojudge/sandbox', '/usr/lib/python38.zip', '/usr/lib/python3.8', '/usr/lib/python3.8/lib-dynload', '/home/contestant/.local/lib/python3.8/site-packages', '/usr/local/lib/python3.8/dist-packages', '/usr/lib/python3/dist-packages']
/home/contestant/.local/lib/python3.8/site-packages っぽいですね.
- ディレクトリの中身表示
import os
import os
for name in os.listdir(r'/home/contestant/.local/lib/python3.8/site-packages'):
print(name)
>>>
networkx-2.4.dist-info
cython.py
setuptools-46.1.3.dist-info
numpy
sklearn
numpy-1.18.2.dist-info
pyximport
__pycache__
scikit_learn-0.22.2.post1.dist-info
scipy-1.4.1.dist-info
joblib
llvmlite-0.31.0.dist-info
Cython
easy_install.py
Cython-0.29.16.dist-info
networkx
decorator-4.4.2.dist-info
numba-0.48.0.dist-info
joblib-0.14.1.dist-info
scipy
pkg_resources
numba
llvmlite
setuptools
decorator.py
で一覧が取得できました.