单调栈
BrooksBUAA
这个作者很懒,什么都没留下…
展开
-
[BZOJ 1007][HNOI2008]水平可见直线:单调栈
点击这里查看原题最终得到的一定是一个下凸壳,因此把所有直线以k升序为第一关键字,b降序为第二关键字进行排序。若当前直线能完全覆盖栈顶直线,即i与s[top]的交点在s[top]与s[top-1]的交点左侧,则将栈顶元素弹出。/* User:Small Language:C++ Problem No.:1007 */ #include<bits/stdc++.h> #define ll long lo原创 2017-04-17 08:09:15 · 314 阅读 · 0 评论 -
[BZOJ 3039]玉蟾宫:单调栈
点击这里查看原题单调栈模板题,注意答案要乘3。/* User:Small Language:C++ Problem No.:3039 */ #include<bits/stdc++.h> #define ll long long #define inf 999999999 using namespace std; const int M=1e3+5; int a[M][M],s[M],l[M],tp原创 2017-04-17 09:39:27 · 406 阅读 · 0 评论 -
[BZOJ 1345][Baltic2007]序列问题Sequence:单调栈
点击这里查看原题维护一个单调递减的栈,如果要加入的元素x大于栈顶元素s[top],分两种情况: 如果s[top-1]>x,ans+=x; 如果s[top-1]<=x,ans+=s[top-1]。/* User:Small Language:C++ Problem No.:1345 */ #include<bits/stdc++.h> #define ll long long #define in原创 2017-04-17 10:00:24 · 331 阅读 · 0 评论 -
[BZOJ 1113][Poi2008]海报PLA:单调栈
点击这里查看原题/* User:Small Language:C++ Problem No.:1113 */ #include<bits/stdc++.h> #define ll long long #define inf 999999999 using namespace std; const int M=25e4+5; int t,x,ans,n,tp,s[M]; int main(){原创 2017-04-17 10:11:59 · 311 阅读 · 0 评论 -
[BZOJ 1660][Usaco2006 Nov]Bad Hair Day 乱发节:单调栈
点击这里查看原题水题/* User:Small Language:C++ Problem No.:1660 */ #include<bits/stdc++.h> #define ll long long #define inf 999999999 using namespace std; const int M=8e4+5; int n,c[M],s[M],tp; ll ans; int main(原创 2017-04-17 10:55:09 · 573 阅读 · 0 评论 -
[BZOJ 1657][Usaco2006 Mar]Mooo 奶牛的歌声:单调栈
点击这里查看原题做两次单调栈,栈里存序号/* User:Small Language:C++ Problem No.:1657 */ #include<bits/stdc++.h> #define ll long long #define inf 999999999 using namespace std; const int M=5e4+5; int n,h[M],c[M],ans,sum[M],原创 2017-04-17 11:10:58 · 501 阅读 · 0 评论 -
[BZOJ 1012][JSOI2008]最大数maxnumber:线段树|单调栈
点击这里查看原题很简单的线段树,当然也有很多别的做法/* User:Small Language:C++ Problem No.:1012 */ #include<bits/stdc++.h> #define ll long long #define inf 999999999 #define lson (rt<<1) #define rson (lson|1) #define mid (l+r>>原创 2017-04-10 17:42:57 · 296 阅读 · 0 评论