| 作成日 | 2025/08/08 |
| 最終更新日 | 2025/10/18 |
コンテスト中に困ったときに見るメモ。チートシート的に使えると嬉しい。
アルゴリズムレベルのミスは頑張って考えるしかないとは思う。
思い込みで進められなかった問題や、再発しそうなWAを出したら追記していく。
| 問題文を読む | 解く問題が違うと複雑になったり、簡単になったり
類題を解いたことがあるときほど要注意 |
|---|---|
| 小さいケースで考える | サンプルを見て考えましょう |
| 答えから考える | 答えの形を見て考察を勧める |
| エッジケースを考える | 最大/最小になるパターンを考える |
| 単調性を探す | 単調増加・単調減少を探す/作る |
| 周期性を探す | MOD取ったり、ループを探したり |
| ソートする | 順番を変えられるならソートしてみる |
| 円環 | 2周分の累積和を取る |
| 操作のタイミング | 変更できるタイミングを考える |
| グラフ |
重心
頂点のパラメータを枝に変えられない? 完全グラフは中点追加 主客転倒 |
| 問題文を読む | 解く問題が違うと当然WA
類題を解いたことがあるときほど要注意 |
|---|---|
| オーバーフロー | int同士の掛け算でもlong long の範囲になる。もう全部long long でやった方が安全
intでやってる場合、小さいケースが通るときはオーバーフローは一回疑う。 |
| 初期値ミス | 最小値、最大値はほんとに上回らない?大丈夫? |
| 添え字ミス | i / j を間違ってない?
i / j 以外の命名が好ましい |
| 境界条件 | 開区間・閉区間を間違ってない?
加減算でずれてない? |
| エッジケース | 0・1の場合に変なことが起こらない?
他にも変なことは起こらない? |