2
2

More than 3 years have passed since last update.

AtCoderでPythonを使ってTLEするときにやることリスト

Posted at

どんな改善点があるかを思い出すためのリストです。細かい説明はしません。

  • PyPy として提出する
  • 逆に Python として提出する(再帰、文字列、タプルが多いコードで有効?)
  • inputsys.stdin.readline に置き換える
  • in Listin Set に置き換える
  • 累乗の計算は pow を使う
  • 2**n1<<n に置き換える
  • whilefor に置き換える
  • リストの先頭に追加や削除を行いたい場合は deque を使う
  • リストの要素を一つずつ取り出すとき index を使ったアクセスを避ける
  • 再帰関数を書くときは sys.setrecursionlimit(<再帰上限>) も書く
  • heapq に追加する要素はリストでなくタプルにする(ダイクストラとか)
  • bisect が遅いときは二分探索を書く
  • 二次元リストを作るとき外側のリストの方が小さくなるようにする
  • Counter+CounterCounter.update(Counter) に置き換える

参考にした記事

https://www.kumilog.net/entry/python-speed-comp
https://qiita.com/Hironsan/items/68161ee16b1c9d7b25fb
https://qiita.com/c-yan/items/dbf2838cdd89864ef5ac
https://linus-mk.hatenablog.com/entry/python_competitive_programming_speed_up_1

2
2
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
2
2