1 条题解

  • 0
    @ 2025-8-24 22:48:21

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar 无钩七不改名
    自食恶果||qq:2186241402

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

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

    以下是正文


    Upd 2024.11.2 改了一点 markdown 错误。

    出题人题解

    首先,33 只有一种拼凑方案就是 {0,1,2}\{0,1,2\},所以每个集合一定都包含这 33 个数。

    而这 33 个数中选 232\sim3 个数,最多能凑成 33,最少能凑成 11,选至少三个数只能凑成 33,所以集合中第 44 个数选择 0+1+2=30+1+2=3,就可以拼凑出 464\sim6。同理可得第 55 个数是 0+1+2+3=60+1+2+3=6,因此可以总结出一个递推式:

    fi=f1+f2+...+fi1,i4f_i=f_1+f_2+...+f_{i-1},\forall i\ge 4

    又因为:

    f1+f2+...+fi2=fi1,i5f_1+f_2+...+f_{i-2}=f_{i-1},\forall i\ge 5

    所以:

    fi=2×fi1,i5f_i=2\times f_{i-1},\forall i\ge 5

    其中 f1=0,f2=1,f3=2f_1=0,f_2=1,f_3=2

    特殊的,还需要处理出 f4=3f_4=3

    而每个集合(设有 nn 个数)最大能凑成的数就是 f1+f2+...+fnf_1+f_2+...+f_n,即 fn+1f_{n+1}

    由于数据范围过大,我选择先预处理出数据范围内的所有 ff 数组。输入 ww 时,只需二分查找 ff 数组中第一个 w\geq w 的数,答案便是这个数在 ff 数组中的下标 1-1


    更新于 2023.7.22023.7.2

    有人问我为什么 logn÷3+3\log n\div 3+3 是对的。这里解释一下,问题简化一下就是求使得 3×2k3n3\times 2^{k-3}\ge n 成立的最小的 kk。而很容易看出上面的式子除了前三项其实就是 fi=3×2k4f_i=3\times 2^{k-4}。故结论成立。

    • 1

    信息

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