C++で二進数を扱うときのメモ
if(v[i] & (1ll<<j))
でv[i]を二進数に変換したときのj桁目にBitが立っているかを判定できるが、vの要素がlong longの場合、1
ではなく、1ll
としないと正しく計算できないので注意。
1ll
は1をintではなくlong longとして扱います。
この問題とか、注意が必要です。
if(v[i] & (1ll<<j))
でv[i]を二進数に変換したときのj桁目にBitが立っているかを判定できるが、vの要素がlong longの場合、1
ではなく、1ll
としないと正しく計算できないので注意。
1ll
は1をintではなくlong longとして扱います。
この問題とか、注意が必要です。