牛客网 牛可乐发红包脱单ACM赛 C题 区区区间间间

【题解】   我想到了两种解法。   一种是扫描线+线段树+单调栈。   另一种方法是O(n)的,比较巧妙。     考虑每个数在哪些区间可以作为最小数。最长的区间就是它向左右走,直到有数字比它小,这个可以用单调栈维护。     那么区间数就是它左边可以走的距离*右边可以走的距离,答案减去这个数字*区间数。     再考虑每个数在哪些区间可以作为最大数。方法是一样的。     那么4次单调栈即可。
相关文章
相关标签/搜索