D - CTZ 解説 by rsk0315

Python での実装について

下記のことに注意します。

  • 整数 n を 2 進法で表したとき、一番右の 1 のみを取り出したものは n & -n と書ける
    • e.g. n == 0b11111101000 のとき n & -n == 0b1000
  • 整数 m に対して、m を表すためのビット数は m.bit_length() で得られる
    • e.g. m == 0b1000 のとき m.bit_length() == 4

このことから、(n & -n).bit_length() - 1 を出力すればよいです。

提出 #49317947

投稿日時:
最終更新: