1 条题解

  • 0
    @ 2026-9-9 9:01:46

    题解

    思路

    令 fi(x)f_i(x) 表示固定 Ai=xA_i=x 后,从第 ii 项到末尾能取得的最小代价。

    做法

    可以归纳证明,在区间 [Li,Ri][L_i,R_i] 中使 fif_i 最小的所有整数总构成一个区间 [li,ri][l_i,r_i]。末项有 [lN,rN]=[LN,RN][l_N,r_N]=[L_N,R_N];向前转移时,若当前区间在 [li+1,ri+1][l_{i+1},r_{i+1}] 左侧,则只有 RiR_i 最优,若在其右侧则只有 LiL_i 最优,否则最优区间就是两者交集。由此可从后向前在线性时间求出全部 li,ril_i,r_i。

    为了取得字典序最小的最优序列,先取 A1=l1A_1=l_1。已经确定 Ai−1A_{i-1} 后,最小化 ∣Ai−Ai−1∣+fi(Ai)|A_i-A_{i-1}|+f_i(A_i) 的最小可选整数为 Ai=max⁡(Li,min⁡(Ai−1,ri))A_i=\max(L_i,\min(A_{i-1},r_i));该选择既保持后缀最优,又在当前位置尽可能小。

    复杂度

    两次线性扫描即可完成,时间复杂度为 O(N)O(N),空间复杂度为 O(N)O(N)。

    • 1

    信息

    ID
    1576
    时间
    2000ms
    内存
    1024MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者