1 条题解

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

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar WZWZWZWY
    一只蜷缩在只因房里敲代码的蒟蒻(真)|| ╯ω╰ || 这只蒟蒻已经被滚去学whk了qwq

    搬运于2025-08-24 21:44:00,当前版本为作者最后更新于2024-09-13 21:47:05,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    好题!有点像博弈论的 DP。

    题目描述

    两头奶牛 Bessi 和 Dessie 走过一条路吃草,共 n(1n7×105)n(1\le n \le 7\times 10 ^ 5) 个格子,第 ii 个格子有重量为 Wi(1Wi2×109)W_i(1 \le W_i \le 2 \times 10 ^{9}) 的草,两牛轮流走,一旦某头牛走过了一格,那么这格的草再也不可能被任一头奶牛吃,每格的草只能被吃一次,所以两头牛只能往后走。Bessi 先走,每头牛每次都往最终自己能吃到最多草的格子走(若有多个格子则选择第一个能吃到最多草的格子),他们都知道对方也想吃到最多的草,问最后 Bessi 和 Dessie 各吃到的草的重量。


    思路

    其他题解的状态定义似乎没表述清楚。

    fif_i 表示到了现在这头牛吃(先手),吃 ii 及以后的草堆所能获得的最大价值。

    gig_i 表示下头牛吃(后手),吃 ii 及以后的草堆所能获得的最大价值。

    假设现在该 AA 牛吃(先手),AA 吃完后,此时 BB 成了先手,AA 成了后手。BB 吃完后 AA 又成为先手……一头牛的先后手是交替的。

    草堆从 nn 循环到 11,初始 fn+1=gn+1=0f_{n+1}=g_{n+1}=0

    先手先选(废话),先手肯定选择 fi+1f_{i+1}gi+1+wig_{i+1}+w_i 中最大的(即不选或者选择草堆 ii)。

    • 如果不选 ii,那么就相当于没操作,fi=fi+1f_i=f_{i+1}gi=gi+1g_i=g_{i+1}

    • 如果选择 ii,此时先手和后手互换,fi=gi+1+wif_i=g_{i+1}+w_igi=fi+1g_i=f_{i+1}

    最后输出 f1f_1(先手最优)和 g1g_1(后手最优)就行了。

    • 1

    信息

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