1 条题解

  • 0
    @ 2025-8-24 23:03:19

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar cff_0102
    & aqua_qaq | 团子群 185800038 | 如果我死了说明我 AFO 了

    搬运于2025-08-24 23:03:19,当前版本为作者最后更新于2024-08-27 10:45:45,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    数学解法。

    众所周知,二进制转四进制非常简单,只需要从后往前两位一断,再分别转四进制就可以了。也就是,把原二进制数拆成若干个 00011011,再分别转成 0123

    不难发现,在这四种情况中,数位之和的变化分别为 0000+1+1+1+1。要让转换之后数位之和不变,则原二进制数两位两位拆开之后只能包含 0001,也就是说,如果从右往左将二进制各个数位从 11 开始编号,那么满足条件的二进制数的偶数位必须是 00

    20242024 转二进制得到 1 11 11 10 10 00,可以先计算 0020472047 的满足要求的数的个数,再将 00 这种情况减掉(大于 20242024,小于 20482048 的数都不可能符合条件),就是答案。

    0020472047 的满足要求的数的个数也不难算,偶数位必须是 00,剩下 66 个奇数位随便选,有 26=642^6=64 种选法。减去 00 这种情况,答案就是 641=6364-1=63

    本题是 [蓝桥杯 2024 省 Python B] 的题,建议提交 Python 代码。

    print(63)
    

    但是会发现代码过短交不上去,所以需要随便加点注释,然后就能交上去了。

    AC 链接:https://www.luogu.com.cn/record/174920010

    • 1

    [蓝桥杯 2024 省 Python B] 穿越时空之门

    信息

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