AT_abc269_c.[ABC269C] Submask

普及-

通过率:0%

AC君温馨提醒

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

题目描述

给定一个非负整数 NN,请按升序输出所有满足以下条件的非负整数 xx:

  • 将 xx 用二进制表示时,其所有为 11 的位的集合,必须是 NN 的二进制表示中为 11 的位的集合的子集。
    • 换句话说,对于所有非负整数 kk,如果 xx 的 2k2^k 位为 11,那么 NN 的 2k2^k 位也必须为 11。

输入格式

输入以以下格式从标准输入读入。

NN

输出格式

请将所有满足条件的非负整数 xx 按升序,每行输出一个十进制整数。

输入输出样例

  • 输入#1

    11

    输出#1

    0
    1
    2
    3
    8
    9
    10
    11
  • 输入#2

    0

    输出#2

    0
  • 输入#3

    576461302059761664

    输出#3

    0
    524288
    549755813888
    549756338176
    576460752303423488
    576460752303947776
    576461302059237376
    576461302059761664

说明/提示

限制

  • NN 是整数。
  • 0≤N<2600 \leq N < 2^{60}。
  • NN 的二进制表示中为 11 的位不超过 1515 个。

样例解释 1

将 N=11(10)N=11_{(10)} 用二进制表示为 1011(2)1011_{(2)}。满足条件的非负整数 xx 如下:

  • 0000(2)=0(10)0000_{(2)}=0_{(10)}
  • 0001(2)=1(10)0001_{(2)}=1_{(10)}
  • 0010(2)=2(10)0010_{(2)}=2_{(10)}
  • 0011(2)=3(10)0011_{(2)}=3_{(10)}
  • 1000(2)=8(10)1000_{(2)}=8_{(10)}
  • 1001(2)=9(10)1001_{(2)}=9_{(10)}
  • 1010(2)=10(10)1010_{(2)}=10_{(10)}
  • 1011(2)=11(10)1011_{(2)}=11_{(10)}

样例解释 3

输入可能超出 3232 位有符号整数的范围。

由 ChatGPT 4.1 翻译

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

首页