信息
- ID
- 1627
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者
一次操作至多让序列最大值增加 1,所以答案至少为 M=maxAi。
同时考察环上相邻元素差的绝对值之和:一次给连续区间加一只会改变区间两端的差,因此该和至多增加 2。令 D=21∑i=0N−1∣Ai−A(i+1)modN∣,答案还至少为 D。
这个下界可以达到。把操作倒过来看:若 M>D,序列中不可能有零,可将整环减一;若 M<D,选择一个只由最大值组成的极大连续段减一;若 M=D,最大值只有一个极大段时减去该段,否则序列同样没有零,可减去包含所有最大值的最短环形区间。每一步都能使 max(M,D) 恰好减少一,直到全零。因此答案是 max(M,D)。
只需一次线性扫描,时间复杂度 O(N),空间复杂度 O(N)。