在查询前后缀和时,每次的计算虽然是 O(1)O(1)O(1) 的,但事常数肥肠大,所以如果加上一句 if(!pre[]) continue 的话,就会有很大的优化。
if(!pre[]) continue
record 无if
record 有if
还有就是,可以记录当前数列有没有被暴力修改过,即 x>lenx>lenx>len 的情况,如果没有的话,可以预处理一个原数列的前缀和数组,查询区间和时直接使用前缀和数组 O(1)O(1)O(1) 查询,而不是使用分块。
关于一个 if 让我从 T 两个点变成最优解这件事