[BZOJ 2096][Poi2010]Pilots
2016-09-30 16:51
393 查看
这个题纯净水啊……
开两个单调队列,然后用滑动窗口法即可。
开两个单调队列,然后用滑动窗口法即可。
/************************************************************** Problem: 2096 User: danihao123 Language: C++ Result: Accepted Time:5656 ms Memory:24640 kb ****************************************************************/ #include <cstdio> #include <cctype> #include <queue> #include <deque> #include <algorithm> using namespace std; const int maxn=3000005; namespace DDQueue{ queue<int> Q; deque<int> Min,Max; inline void push(int x){ Q.push(x); while(!Min.empty() && Min.back()>x) Min.pop_back(); Min.push_back(x); while(!Max.empty() && Max.back()<x) Max.pop_back(); Max.push_back(x); } inline void pop(){ if(Q.empty()) return; if(Q.front()==Min.front()) Min.pop_front(); if(Q.front()==Max.front()) Max.pop_front(); Q.pop(); } inline int get_ans(){ return Max.front()-Min.front(); } inline int size(){ return Q.size(); } }; inline char GetC(){ char c; fread(&c,1,1,stdin); return c; } inline int readint(){ register int x=0; register char c=GetC(); while(!isdigit(c)) c=GetC(); while(isdigit(c)){ x=x*10+c-'0'; c=GetC(); } return x; } int A[maxn]; int main(){ register int k,n; register int i,ans=0; k=readint(); n=readint(); for(i=1;i<=n;i++){ A[i]=readint(); } for(i=1;i<=n;i++){ DDQueue::push(A[i]); while(DDQueue::get_ans()>k) DDQueue::pop(); ans=max(ans,DDQueue::size()); } printf("%d\n",ans); return 0; }
相关文章推荐
- bzoj 2096: [Poi2010]Pilots
- 【POI2010】【BZOJ2096】Pilots
- BZOJ 2096: [Poi2010]Pilots
- BZOJ 2096: [Poi2010]Pilots( set )
- BZOJ 2096: [Poi2010]Pilots|单调队列
- bzoj 2096: [Poi2010]Pilots (二分答案+单调队列)
- BZOJ——2096: [Poi2010]Pilots
- BZOJ 2096: [Poi2010]Pilots 单调队列题解
- bzoj 2096: [Poi2010]Pilots 单调队列
- bzoj2096 [Poi2010]Pilots
- bzoj 2096: [Poi2010]Pilots
- BZOJ 2096 [Poi2010]Pilots
- BZOJ 2096([Poi2010]Pilots-单调队列-差值)
- BZOJ 2096([Poi2010]Pilots-单调队列-差值)
- BZOJ 2096 [Poi2010]Pilots 单调队列
- [BZOJ 2096]Poi2010 Pilots
- BZOJ 2096 Poi2010 Pilots 单调队列
- 2096: [Poi2010]Pilots 单调队列维护最值
- 【BZOJ】【P2096】【Poi2010】【Pilots】【题解】【二分+单调队列】
- 2096: [Poi2010]Pilots