1 条题解

  • 0
    @ 2025-8-24 23:13:41

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar FJ_EYoungOneC
    这个人很勤快,但是他并不想留下什么

    搬运于2025-08-24 23:13:41,当前版本为作者最后更新于2025-04-18 12:34:07,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    观察上图,我们设从上到下为第 1,2,3,1, 2, 3, \dots 层:

    • 第一层:11 个。
    • 第二层:1+21 + 2 个。
    • 第三层:1+2+31 + 2 + 3 个。
    • \dots

    我们发现第 kk 层的个数应该是 1+2+3++k1 + 2 + 3 + \dots + k

    k,v,sk, v, s 分别表示当前层数、当前层的个数、总个数。

    那么当 s20230610s \leq 20230610 时执行:

    k += 1
    v += k
    s += v
    

    当跳出循环时,表示 s>20230610s > 20230610,即第 kk 层无法凑成,故输出 k1k - 1

    • Python
    import sys
    sys.setrecursionlimit(1000000)
    input = lambda:sys.stdin.readline().strip()
    
    k = 1
    v = 1
    s = 1
    
    while s <= 20230610:
        k += 1
        v += k
        s += v
    
    print(k - 1)
    

    运行结果:

    494
    
    • 1

    信息

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