1 条题解

  • 0
    @ 2025-8-24 23:06:14

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar forest114514
    AFO|成也集合幂级数,败也集合幂级数|O Fortuna, velut luna,statu variabilis.

    搬运于2025-08-24 23:06:14,当前版本为作者最后更新于2024-12-17 15:33:22,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    这不是去年正睿某天 T4 吗?后面忘了,反正是道 DP 好题就是了。

    首先 O(k(nk))O(k(n-k)) 的 DP 是容易的,直接关路灯即可,但是优化不了一点。

    但是我们关路灯用了费用提前计算的思想,这题也可以呢,只不过我们之前的贡献思想基于每步操作两侧路灯的贡献,自然需要二维来知道两边的信息,我们能否只用关系一侧信息?

    不妨设每个点下标为 pp,考虑除了从 kk 走向 ii 的那段是一定会有的之外其他所有背道而驰的路径都会使得这个水藻产生额外的贡献,如果从左边 ii 走到右边 jj 此时对 1i11\sim i-1 的额外的贡献就是 2(i1)×(pjpi)2(i-1)\times (p_j-p_i),为什么有二倍呢?因为你过去了还要回来,这也是额外的代价啊。相反同理。

    fif_i 为当前走到了 ii 的最小代价转移有:

    $$\begin{aligned} &f_i+2(p_j-p_i)\times(i-1)\to f_j,i\leq K,j\geq K\\ &f_i+2(p_i-p_j)\times(n-i)\to f_j,i\geq K,j\leq K \end{aligned} $$

    这个转移有环,但是我们可以从最短路的角度看不难发现可以 dijkstra,每次从最小的开始转移,显然当前考虑完了的区间是 [l,r][l,r],每次考虑 fl1f_{l-1}fr+1f_{r+1} 哪个更小即可,一开始 fK=i=1npKpif_{K}=\sum\limits_{i=1}^{n}|p_K-p_i|,答案就是 min(f1,fn)\min(f_1,f_n),看哪个先被转移到。

    直接转移是 O(n2)O(n^2) 的,但是这个 DP 显然可以斜率优化,所以可以维护凸包做到 O(n)O(n)

    • 1

    信息

    ID
    10991
    时间
    1500ms
    内存
    1024MiB
    难度
    7
    标签
    递交数
    0
    已通过
    0
    上传者