popcount
1回だけなら
bit_count()
を使うと簡潔に書ける。
code: bc1.py
bit_count = i.bit_count()
何度もクエリが来る場合は前計算しておく。
前計算:
$ O(N)
クエリ:
$ O(1)
code: bc.py
bit_count =
0
for _ in range(N.bit_length()):
bit_count +=
x+1 for x in bit_count
#ビット演算