C - CTZ Editorial
by
rsk0315
Python での実装について
下記のことに注意します。
- 整数
nを 2 進法で表したとき、一番右の1のみを取り出したものはn & -nと書ける- e.g.
n == 0b11111101000のときn & -n == 0b1000
- e.g.
- 整数
mに対して、mを表すためのビット数はm.bit_length()で得られる- e.g.
m == 0b1000のときm.bit_length() == 4
- e.g.
このことから、(n & -n).bit_length() - 1 を出力すればよいです。
posted:
last update:
