单调队列与单调栈
wanherun
今天会有好事发生吗
展开
-
bzoj3401 [Usaco2009 Mar]Look Up 仰望
题目求后面比自己大的第一个数。单调栈裸题,模拟一下就好了。#include<bits/stdc++.h> #define N 100000 using namespace std; int n,A[N+5]; int stk[N+5],top; int ans[N+5]; inline char nc() { static char buf[100000],*p1=buf,*p2=buf;原创 2017-10-10 22:46:02 · 243 阅读 · 0 评论 -
bzoj4385 [POI2015]Wilcze doły
题目bzoj上的单调队列第一题,维护一个单调栈,让里面长度为d,再更新答案。#include<bits/stdc++.h> #define N 2000005 using namespace std; long long n,p,d; long long A[N+1],st,ans; long long q[N+1],l,r; inline char nc() { static char原创 2017-10-07 12:17:41 · 233 阅读 · 0 评论 -
bzoj1113 [Poi2008]海报PLA
题目首先,答案的上界显然就为n。之后考虑如何减少——如果两张海报高度相同,之间的海报都比它高,答案就减少一。单调队列就可以了。#include<bits/stdc++.h> #define N 250000 using namespace std; int n,tot; int tmp,x; int stk[N+1],top; inline char nc() { static char原创 2017-09-26 10:51:39 · 259 阅读 · 0 评论 -
bzoj2096 [Poi2010]Pilots
题目又是单调队列,好常见呀。维护最大与最小即可。#include<bits/stdc++.h> #define N 3000000 using namespace std; int n,A[N+1],k,tmp,ans; int mx[N+1],mn[N+1]; int lx,rx,ln,rn; inline char nc() { static char buf[100000],*p1=b原创 2017-09-24 21:06:40 · 271 阅读 · 0 评论 -
bzoj3048 [Usaco2013 Jan]Cow Lineup
题目 怕又是一道单调栈的题。。。之前考过,过来A一发。#include<bits/stdc++.h> #include<set> using namespace std; long long l,r,ans,n,k,tot; map<long long,long long>mp; long long flag[100010],a[100010]; long long q[100010]; int原创 2017-09-22 22:53:20 · 220 阅读 · 0 评论 -
bzoj4385 [POI2015]Wilcze doły
题目bzoj上的单调栈第一题,维护一个单调栈,让里面长度为d,再更新答案。#include<bits/stdc++.h> #define N 2000005 using namespace std; long long n,p,d; long long A[N+1],st,ans; long long q[N+1],l,r; inline char nc() { static char b原创 2017-09-22 22:46:43 · 304 阅读 · 0 评论