イナズマの日記

こんにちは。

C++で二進数を扱うときのメモ

if(v[i] & (1ll<<j))

でv[i]を二進数に変換したときのj桁目にBitが立っているかを判定できるが、vの要素がlong longの場合、1ではなく、1llとしないと正しく計算できないので注意。 1llは1をintではなくlong longとして扱います。

atcoder.jp

この問題とか、注意が必要です。