1 条题解

  • 0
    @ 2026-9-9 8:52:32

    题解

    思路

    设在位置 ii 执行了 aia_i 次操作,则必须满足 ai≥0a_i\ge0 和 2ai−ai−1−ai+1=−Ai2a_i-a_{i-1}-a_{i+1}=-A_i。

    做法

    令 bi=ai+1−aib_i=a_{i+1}-a_i,上式化为 bi−bi−1=Aib_i-b_{i-1}=A_i。首先必须有 ∑Ai=0\sum A_i=0;在此前提下,先假定 b1=0b_1=0 就能由前缀和求出所有 bib_i 相对于 b1b_1 的值。又因为环上 ∑bi=0\sum b_i=0,可直接求出唯一的 b1b_1;若不是整数,则无解。

    得到整数差分 bib_i 后,令 a1=0a_1=0 并递推出一组相对的 aia_i。方程的所有解只相差一个全局常数,为了使每个 ai≥0a_i\ge0 且操作总数最小,应把整个序列上移到最小值恰好为 00。此时 ∑ai\sum a_i 就是答案。

    复杂度

    整个过程的时间复杂度为 O(N)O(N),空间复杂度为 O(N)O(N)。

    • 1

    信息

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