WAしたときの心構え&コンテスト本番でやらかしたミス集

自分用メモ

1人でも救われる人がいるかもしれないので公開

随時追加...はしたくないけど、やらかし次第追加

WAしたときの心構え

REとTLEはわからん

提出前

1つくらいはテストケースを自作

コーナーケース、特にn=1,2

解法の正当性は?

コーディングしながら考えない、考えてからコーディングする

1WA

深呼吸

初手方針にこだわりすぎない

途中まで書いたコードを消さない、コメントアウトする

方針を変更したとしてもその正当性の証明と、初手方針のhackケースを見つけるまではコーディングしない(初手方針のhackから原因究明できる?)

解法がおかしい?コードのバグ?片方に固着しない、両方を交互に考慮する

3WA

その問題は保留で次に進む

おそらく誤読or誤解(特に英語コンテスト)

出力形式を満たしている?(Yes/No、出力行数、特にコーナーケース)

0TLEならば、明らかな論理エラーがあるとは考えにくい?

5WA

n=3くらいのサンプルを全部試す、これで気づけるはず?

サンプルが弱いor偏っているため偶然一致しているだけの可能性

WA for Pretest 5とかならnは小さいはず?

明らかに解いている人数が多い場合は誤読

変なミスまとめ

誤読

anyをmaxと誤解

(a_i, b_p_i)と(a_p_i, b_i)が逆(サンプルが偶然一致)

ハミルトン閉路を解こうとした(NP完全)

intを集合としてソートするときはpopcountで比較

オイラーツアーの配列の要素A[i]と頂点iは別

論理エラー

幾何、3点の直線判定

バグ

+と*

コーナーケースでのYes/No忘れ

出力行数忘れ

ifとwhile