这题题意很清晰,就是求取区间和-区间最大值的最大
如果我们考虑直接求区间和再减最大值,显然复杂度比较高
因此考虑枚举每个位置,然后找到以他为最大值的最大区间
那么答案就是这段区间l-r中,i-r中的前缀和最大值减去l-1-i中前缀和最小值,这就是这段区间的最大和,之后减去当前位置即可
这种最大最小前缀和可以直接用st表维护表示区间的最大前缀和。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-YWan5yMllDZkRjNmZjN0ADNwUjYyYWOyE2YkRTNwATZyQGZy8CX4AzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL5M3Lc9CX6MHc0RHaiojIsJye.gif)
View Code
没有人不辛苦,只有人不喊疼
这题题意很清晰,就是求取区间和-区间最大值的最大
如果我们考虑直接求区间和再减最大值,显然复杂度比较高
因此考虑枚举每个位置,然后找到以他为最大值的最大区间
那么答案就是这段区间l-r中,i-r中的前缀和最大值减去l-1-i中前缀和最小值,这就是这段区间的最大和,之后减去当前位置即可
这种最大最小前缀和可以直接用st表维护表示区间的最大前缀和。
View Code
没有人不辛苦,只有人不喊疼