N个整数组成的数组,定义子数组a[i]..a[j]的宽度为:max(a[i]..a[j]) - min(a[i]..a[j]),求所有子数组的宽度和。 分析: 我们只要统计每个数做为最小的数和最大的数所在区间有多少个。这样求当前数作为最大的数左右范围,这个用单调栈维护下,同理最小的也是然后左区间大小 ...
分类:
编程语言 时间:
2019-07-17 20:44:45
阅读次数:
173
单调栈:就是栈中存储元素的某种信息是单调的栈 单调栈:就是栈中存储元素的某种信息是单调的栈 ? 单调栈可以干什么呢? ? 可以线性寻找一个元素左边(或右边)第一个满足某种条件的元素 ? 比较常见的问题是:给定一个序列,对于每个数寻找其左边(或右边)第一个比它大(或比它小)的数 以寻找每个数左边第一个 ...
分类:
其他好文 时间:
2019-07-17 20:22:48
阅读次数:
151
单调栈和单调队列的定义具体看ppt了 模板: 单调队列 例题:https://vjudge.net/contest/310230#problem/B 求滑动窗口内最大(小)值 单调栈 例题:https://vjudge.net/contest/310230#problem/A 求柱状图内最大矩形面积 ...
分类:
其他好文 时间:
2019-07-16 16:42:42
阅读次数:
102
原题地址 单调栈板子题,代码很简单。 注意将a[n + 1]赋值为0,防止栈中矩形未弹完。 代码实现如下: #include <bits/stdc++.h> using namespace std; #define LL long long #define rep(i, a, b) for (reg ...
分类:
其他好文 时间:
2019-07-15 17:21:41
阅读次数:
101
题面 play题目大意这个位面存在编号为1~2N的2N个斗士,他们正为争夺斗士大餐展开R轮PVP,每个斗士i都有一个固有APM ai,和一个初始斗士大餐储量 bi。每轮开始前以及最后一轮结束之后,2N个斗士会重新按照各自斗士大餐的储量进行排序(斗士大餐储量相同时编号小的靠前),每轮中,第1名和第2名 ...
分类:
其他好文 时间:
2019-07-09 22:30:40
阅读次数:
134
"1101 火车进栈" dfs题,亏我想了那么久。。。 "POJ2559 Largest Rectangle in a Histogram " 单调栈。 我们假设已经选定了某一个高度,得到了一个确定的长度。 现在我们向后扫,由于我们在当前高度已经最长了,所以接下来肯定会变小。那多余的部分我们就可以都 ...
分类:
其他好文 时间:
2019-07-08 00:38:22
阅读次数:
158
"原题链接" 题目大意是有N个数,分成K段,每一段的花费是这个数里相同的数的数对个数,要求花费最小 如果只是区间里相同数对个数的话,莫队就够了 而这里是!边单调性优化边莫队(只是类似莫队)!而移动的次数和分治的复杂度是一样的! 这个时候就不能用单调栈+二分了,得用分治 分治的方法就是$Solve(l ...
分类:
其他好文 时间:
2019-07-05 20:51:22
阅读次数:
83
题目 链接 在蒜国的海岸线上有一排由西向东的瞭望塔,这些瞭望塔由于建造的地面高度不同,所有瞭望塔的高度也是不能不一样的。 这个时候蒜国国王来问蒜头君,每个瞭望塔向东能看到几个瞭望塔?这里需要注意在A塔东边有B塔,B塔的高度高于或等于A塔的高度,那么B塔后面的塔都看不到。 解决方案 由题意知,求左边第 ...
分类:
其他好文 时间:
2019-07-04 14:37:39
阅读次数:
106