1 条题解

  • 0
    @ 2026-9-9 9:03:27

    题解

    思路

    设在相邻位置 i,i+1i,i+1 上执行的净增量为 xix_i,则把区间 [l,r][l,r] 清零需要满足 Ai+xi−1+xi=0A_i+x_{i-1}+x_i=0,边界外的 xl−1,xrx_{l-1},x_r 视为 00。

    做法

    从左端开始递推这些方程,最后一个方程成立当且仅当 Al−Al+1+Al+2−⋯+(−1)r−lAr=0A_l-A_{l+1}+A_{l+2}-\cdots+(-1)^{r-l}A_r=0;这一条件也是充分的,因为得到的整数净操作量可以由允许的增加、减少操作实现。

    定义交错前缀和 S0=0S_0=0,Si=A1−A2+A3−⋯+(−1)i−1AiS_i=A_1-A_2+A_3-\cdots+(-1)^{i-1}A_i。区间可行恰好等价于 Sl−1=SrS_{l-1}=S_r,所以每读入一个新前缀和,就把它此前出现的次数加入答案,再增加其计数。

    复杂度

    使用哈希表即可在线完成,时间复杂度期望为 O(N)O(N),空间复杂度为 O(N)O(N)。

    • 1

    信息

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