1 条题解

  • 0
    @ 2025-8-24 23:08:46

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar LostKeyToReach
    争取今年不退役 || int_stl. || 有意互关私。

    搬运于2025-08-24 23:08:46,当前版本为作者最后更新于2025-01-21 16:48:05,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    有一个很显然的 dp 做法。

    dpidp_i 表示恰好吃 ii 天的最小巧克力数量,那么有转移:

    dpi=minj(dpij+2j1)dp_i = \min_{j}(dp_{i - j} + 2^j - 1)

    其中 2j1=k=1j2k12^j - 1 = \displaystyle \sum_{k = 1} ^ j 2^{k - 1}

    请注意,我们这里令 ij+1i - j + 1 重新开始按规律吃巧克力,故在 dpij<2jdp_{i - j} < 2^j 时才可以转移。

    那么 jj 的范围是什么呢?首先,肯定有 1ji1 \le j \le i。其次,由于答案不超过 6464 位有符号整数的范围,故 j60j \le 60。综上,我们只需在 [1,min(i,60)][1, \min(i, 60)] 的范围内枚举 jj 即可。

    处理完 dp 就可以 O(1)O(1) 回答了。

    这里的时间复杂度为 O(t+60V)O(t + 60V),足以通过本题了。

    Challenge:当 VV 很大时,你有什么更优秀的解法吗?

    • 1

    信息

    ID
    11064
    时间
    1000ms
    内存
    128MiB
    难度
    3
    标签
    (无)
    递交数
    0
    已通过
    0
    上传者