特定の言語に依存しない内容
実装テクニック
- 実装力で戦える! ~競プロにおける実装テクニック14選~ - 競技プログラミングで実装を楽にする方法、より可読性の高いコードを書く方法を解説した記事。実際のコードの改善例も示されている。
- 超高速!多倍長整数の計算手法【前編:大きな数の四則計算を圧倒的な速度で!】 - 大きな数を計算(多倍長整数演算)するときの工夫を解説した記事。後編もある。
デバッグの方法
- デバッグ力を高める! ~5年間の経験から学んだ、競プロ・アルゴリズム実装におけるバグ取りの戦略~ - 実装においてバグが発生する原因と、バグを素早く修正するための方法が体系的にまとめられている記事。
主なバグの原因
- バグった原因集 - Motsu_xeさんによって、競技プログラミングにおけるバグの原因が一覧としてまとめられている。
- 競技プログラミングにおけるWrong Answerの原因ビンゴ - 提出したコードが不正解(WA: Wrong Answer)となる原因が25種類にまとめられている。
ランダムテストを書く
- 競プロでWAが出たときのランダム入力データ生成入門 - 提出コードが不正解となったときに、提出した解法と愚直解による結果と比較する方法を紹介した記事。ランダムな入力データを生成するコードとして、C++とPythonによる実装例も掲載されている。
- 1WAがとれない……ときのランダムテストのすゝめ - バグを発見するために、ランダムな入力データでテストを行う方法が解説されている記事。テストの際に、Online Judge Toolsを活用しているのが特徴。
ジャッジステータスの優先度
- AtCoderのジャッジステータスの表示優先度 - 提出コードの結果が複数のジャッジステータスに該当する場合に、どの表示が優先されるか調査した記事。
注意
ジャッジシステムの言語アップデート(2023年8月)以前の調査であり、予告なく変わる可能性もある。
実行時間制限超過への対策
- [競プロ]AtCoderのTLEには2種類あり、対策が異なる - 実行時間制限超過(TLE)が発生した場合に、実行打ち切りの有無別に対策方法が紹介されている記事。
定型作業を自動化
- 競プロでシェルスクリプトを使う - 競技プログラミングにおける各種操作(入出力・パイプライン・コマンドラインツールとの連携など)をシェルスクリプトで実行する方法がまとめられているスライド資料。