uestc data structure K - Sliding Window
2015-04-21 12:42
239 查看
开始我用线段树做的,,,后来看题解才发现也可以用双调队列做而且更直观
单调队列就是维护一个典调递增或递减的队列,在这个题目里主要就是利用单调队列尽量保留有效信息舍弃无效信息,所以1求最小值时要用单调递增队列,最大值要用递减序列。这样即抛弃了无效值,又能保证有效值能一直维持到最后发挥作用。学习了
单调队列就是维护一个典调递增或递减的队列,在这个题目里主要就是利用单调队列尽量保留有效信息舍弃无效信息,所以1求最小值时要用单调递增队列,最大值要用递减序列。这样即抛弃了无效值,又能保证有效值能一直维持到最后发挥作用。学习了
#include<cstdio> #include<cstring> #include<iostream> #include<deque> #include<algorithm> #define MAX 1001000 using namespace std; long long n,m,s[MAX]; struct nod{ long long index,value; nod(long long i,long long v){index=i,value=v;} }; int main(){ cin>>n>>m; for(int i=0;i<n;i++){ cin>>s[i]; } deque<nod>a; int i; for(i=0;i<m;i++){ while(!a.empty()&&s[i]<a.back().value) a.pop_back(); if(a.empty()||(!a.empty()&&s[i]>a.back().value)) a.push_back(nod(i,s[i])); } cout<<a.front().value; for(;i<n;i++){ while(!a.empty()&&a.front().index<=i-m) a.pop_front(); while(!a.empty()&&s[i]<a.back().value) a.pop_back(); if(a.empty()||(!a.empty()&&s[i]>a.back().value)) a.push_back(nod(i,s[i])); cout<<" "<<a.front().value; } cout<<endl; deque<nod>b; for(i=0;i<m;i++){ while(!b.empty()&&s[i]>b.back().value) b.pop_back(); if(b.empty()||(!b.empty()&&s[i]<b.back().value)) b.push_back(nod(i,s[i])); } cout<<b.front().value; for(;i<n;i++){ while(!b.empty()&&b.front().index<=i-m) b.pop_front(); while(!b.empty()&&s[i]>b.back().value) b.pop_back(); if(b.empty()||(!b.empty()&&s[i]<b.back().value)) b.push_back(nod(i,s[i])); cout<<" "<<b.front().value; } cout<<endl; return 0; }
相关文章推荐
- uestc data structure training f 秋实大哥与妹纸
- UESTC 483 Data Structure Problem
- uestc data structure D - 秋实大哥与战争
- uestc data structure n 秋实大哥搞算数
- UESTC---1559 Data Structure Problem [最大堆,最小堆,二叉搜索树]
- UESTC 483 Data Structure Problem (二叉树)
- uestc data structure n 秋实大哥与快餐店
- UESTC_Sliding Window 2015 UESTC Training for Data Structures<Problem K>
- 无法打开物理文件 "D:\understructuredata _DAT.MDF"。操作系统错误 5:"5(拒绝访问。)"
- Basic Data Structure(HDU 5929 2016东北地区CCPC)
- Add and Search Word - Data structure design - LeetCode
- Overview of solrconfig.xml 之 Common XML data-structure and type elements
- C Datastructure 4 ---- link list(3)
- Parse JSON into ordered data-structure (in python)
- Two Sum III - Data structure design
- STL UVA 11995 I Can Guess the Data Structure!
- [Brief Introduction to Data Structure]Linear Table- 线性表
- data structure and algorithm analysis上一点摘录
- Data Structure Binary Tree: Construct Full Binary Tree from given preorder and postorder traversals
- 170. Two Sum III - Data structure design