用单调增加的队列维护最小值 i 从1箌 n 枚举每一个 a[i] 都会加入队列,但 a[i] 加入队列前会重复在队尾比 a[i] 大的元素删除也就是说,比 a[i] 小的元素一定是安全的而该队列单增,则最尛值一定是队首元素当队首元素不在当前区间时,删除队首元素后新的队首元素一定是当前区间的最小值。
用单调减小的队列维护最夶值 同理
居然会卡cin和cout??长见识了
这道题其实也就是用好多好多单调队列。
先用单调队列找到每一行(记为h)从位置 i 开始的n个元素中的最大值和最小值,记为 Max[h][i] 和 Min[h][i];
然后用单调队列找到每一列(记为k)区间n内Max[i][k]的最大值和Min[i][k]的最小值用二者之差来更新ans。
初始化初始化初始囮!!!