コンテスト中に気をつけること
思いつき次第追加する
全体的なこと
- 問題文だけ読んで考察を始めない。問題を開いたら制約・サンプルまで一度目を通す。(誤読して実装した後に気づくの防止)
- 提出する前にコードを見直す(後で書こうと思ってたことを忘れたりしがち)
- できるだけ最大ケースを試す(入力が整数一個の時とかは簡単なのでやる)
- 0-indexed と 1-indexed を同時に使わない
やりがちなミス
- 負の割り算で壊れるやつ
- リーディングゼロを弾くとき "0" を弾く
- H と W, N と M, R と C とかを逆にする
WA の原因がわからない時
- 小さい制約で愚直解と比較
- 出力のフォーマットはあっていますか(特に構築とかでやりがち)
- 最小のケースとかコーナーはありませんか?
- 実装方針を変えてみる
TLE の原因がわからない時
- 関数の引数で無駄に vector のコピーとかをしてませんか?(参照で渡す)
考察が詰まった時
- わかっていることを整理する
- 愚直を考える
- 実験
- より簡単な問題を考える
- 一般グラフの問題→木の場合を考える
- 木の問題→パスの場合を考える
- 単調性はありますか?二分探索できませんか?
- 入力が行列 or 考察すると行列が出てくる → その行列を隣接行列だと思ってグラフを考える