天天看点

CF1359D Yet Another Yet Another Task(思维)

这题题意很清晰,就是求取区间和-区间最大值的最大

如果我们考虑直接求区间和再减最大值,显然复杂度比较高

因此考虑枚举每个位置,然后找到以他为最大值的最大区间

那么答案就是这段区间l-r中,i-r中的前缀和最大值减去l-1-i中前缀和最小值,这就是这段区间的最大和,之后减去当前位置即可

这种最大最小前缀和可以直接用st表维护表示区间的最大前缀和。

CF1359D Yet Another Yet Another Task(思维)
CF1359D Yet Another Yet Another Task(思维)

View Code

没有人不辛苦,只有人不喊疼