- コンパイルするファイルが間違っている
- 実行するファイルが間違っている
- 実はコンパイルに失敗していて,最後にコンパイルが成功したファイルを実行している
- ヘッダがない
- 人のコードパクってきたときに
funcional
ヘッダがなかった
using namespace
がない
- 変数名と
define
の重複
vector<vector<long>> A(N,vector<int>(0))
みたいに型が一致していない
<Templete T>
の書き忘れ
N=1,K=0
などの極端な値
A=B
のとき
- 同じクエリが複数回来るかもしれない
- 自己ループ,同じ辺
- 0の0乗,0の階乗の定義
- 入力を受け取りすぎている
- n重for文でインクリメントする変数を間違える
- n重for文で変数名が重複
- 計算量が多い
- cinを忘れている
- 二項係数ライブラリとかの前計算した配列の範囲外参照
- 文字列の操作中に空文字が登場する
- 0,1-indexedの混同
- modを取ってない
- mod(法)の値が間違っている(998244353,1e9+7)
- modの取り方を間違っている
- 法が素数でない,逆元が存在しない
- mod 3とかでの二項係数はルーカスの定理を使う
- modを取りながら累積和したときに負の数がでる
(A[r]-A[l-1]+mod)%mod
みたいな配慮
modint
構造体を使おう
- 最後にマイナス1などをしている(0のときに-1が出力されてしまう)
- 実はモノイドではなかった
- 単位元が間違っている
- 更新クエリの単位元を$0$にすると壊れる場合がある
- ビルドができていない
- 初期値で候補から外れている値が実は答え
- 答えの上限値が
10^9
なのに二分探索の上限の初期値を10^9
にしている
- 改行(flush)しないと標準出力にでてこない
cin>>a,b;
みたいなことをしている
- switch文でbreak忘れ
make clean
を試す
- 型のパース,intをlongの計算にそのまま突っ込むのは良くない
- 調和級数の計算量勘違い
- コンストラクタの名前を間違えている
- 閉区間,半開区間などの違い
set
やmap
でstd::lower_bound
などは使えない
- 01ナップザックで昇順にdpを回してしまった
- bool型をint型だと思って
- ソート後の配列をソート前の状態として扱ってしまった
- 格子点とグリッドマス目の関係
- 不等式における累乗の注意
- ビットシフト演算子の計算順序
- 四則演算のほうが早い(
1<<2+2
は1<<4
で16
になる)
long
型リテラルにしわすれてオーバーフロー
1<<40
はオーバーフローする.1L<<40
が正しい.