1 条题解

  • 0
    @ 2025-8-24 21:14:00

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar danny101
    谁道人生无再少?门前流水尚能西...

    搬运于2025-08-24 21:13:59,当前版本为作者最后更新于2022-04-12 11:17:54,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    题目传送门

    题目大意:

    求所有由YN构成的长度为 nn 的序列,按字典序输出。

    题目分析

    如果让 N 代表 00Y 代表 11,那么样例输出就可以转化为:

    000
    001
    010
    011
    100
    101
    110
    111
    

    我们发现,这正好是 0~7 的二进制表示!

    于是,我们可以这么想:遍历 002n12^n-1 ,将每一个数转为二进制,每一位是 00 则输出 N,否则输出 Y

    那么,如何把十进制数转成二进制呢?我们可以观察:

    13=(1101)213=(1101)_2

    13 ⁣ ⁣mod2=1=(1)213\!\!\mod2=1=(1)_2

    132=6=(110)2\lfloor\dfrac{13}{2}\rfloor=6=(110)_2

    明白了吗?x2\lfloor \dfrac{x}{2}\rfloor 相当于去掉二进制下 xx 的最后一位,而 x ⁣ ⁣mod2x\!\!\mod2 相当于取出 xx 的最后一位。

    • 1

    信息

    ID
    7628
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者