AT_aising2020_d.Anything Goes to Zero

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

任何东西都会归零

定义 $ \mathrm{popcount}(n) $ 为 $ n $ 在二进制表示中 '1' 的个数。例如,$ \mathrm{popcount}(3)\ =\ 2,\ \mathrm{popcount}(7)\ =\ 3,\ \mathrm{popcount}(0)\ =\ 0 $。
定义 $ f(n) $ 为将 $ n $ 用 $ \mathrm{popcount}(n) $ 除后取余数替换 $ n $ 的操作次数,直到 $ n $ 变为 $ 0 $ 为止(在这个问题的约束下,可以证明 $ n $ 经过有限次操作后一定会变为 $ 0 $)。
以下是以 $ n=7 $ 为例,经过 2 次操作 $ n $ 变为 0 的过程。

  • 因为 $ \mathrm{popcount}(7)=3 $,所以用 3 除 7 后的余数 1 替换 7。
  • 因为 $ \mathrm{popcount}(1)=1 $,所以用 1 除 1 后的余数 0 替换 1。
    给定一个二进制表示的 $ N $ 位整数 $ X $。对于满足 $ 1\ \leq\ i\ \leq\ N $ 的整数 $ i $,定义将 $ X $ 的第 $ i $ 位取反后的整数为 $ X_i $。求 $ f(X_1),\ f(X_2),\ \ldots,\ f(X_N) $。

输入格式

输入从标准输入中以以下形式给出。

$ N $ $ X $

输出格式

输出 $ N $ 行。第 $ i $ 行输出 $ f(X_i) $ 的值。

样例 #1

样例输入 #1

3
011

样例输出 #1

2
1
1

样例 #2

样例输入 #2

23
00110111001011011001110

样例输出 #2

2
1
2
2
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
1
3

输入输出样例

  • 输入#1

    3
    011

    输出#1

    2
    1
    1
  • 输入#2

    23
    00110111001011011001110

    输出#2

    2
    1
    2
    2
    1
    2
    2
    2
    2
    2
    2
    2
    2
    2
    2
    2
    2
    2
    2
    2
    2
    1
    3

说明/提示

制約

  • $ 1\ \leq\ N\ \leq\ 2\ \times\ 10^5 $
  • $ X $ 是二进制表示的 $ N $ 位的整数(首位不一定是 '1')

样例解释 #1

  • $ X_1 $ 是 7。因为 7 变为 1 再变为 0,所以 $ f(7) = 2 $。
  • $ X_2 $ 是 1。因为 1 变为 0,所以 $ f(1) = 1 $。
  • $ X_3 $ 是 2。因为 2 变为 0,所以 $ f(2) = 1 $。

输入解题思路,AI测评打分。不知道怎么写?

首页