信息
- ID
- 1588
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者
设在相邻位置 i,i+1 上执行的净增量为 xi,则把区间 [l,r] 清零需要满足 Ai+xi−1+xi=0,边界外的 xl−1,xr 视为 0。
从左端开始递推这些方程,最后一个方程成立当且仅当 Al−Al+1+Al+2−⋯+(−1)r−lAr=0;这一条件也是充分的,因为得到的整数净操作量可以由允许的增加、减少操作实现。
定义交错前缀和 S0=0,Si=A1−A2+A3−⋯+(−1)i−1Ai。区间可行恰好等价于 Sl−1=Sr,所以每读入一个新前缀和,就把它此前出现的次数加入答案,再增加其计数。
使用哈希表即可在线完成,时间复杂度期望为 O(N),空间复杂度为 O(N)。