UESTC -- 201 Sliding Window(队列)
来源:互联网 发布:淘宝宝贝介绍图片尺寸 编辑:程序博客网 时间:2024/06/07 04:08
题目大意:给出一个序列,求出每连续k个数字的最大值个最小值;
代码实现:
#include<cstdio>#include<cstring>#include<queue>#include<iostream>using namespace std;const int N=1000005;int min_value[N],max_value[N],value[N],n,k;struct cmp1{ bool operator()(int x,int y){ return value[x]>value[y]; }};struct cmp2{ bool operator()(int x,int y){ return value[x]<value[y]; }};int main(){ while(~scanf("%d%d",&n,&k)){ priority_queue<int,vector<int>,cmp1> q1; priority_queue<int,vector<int>,cmp2> q2; int cnt=0; for(int i=1;i<=n;++i) scanf("%d",&value[i]); for(int i=1;i<=k;++i){ q1.push(i),q2.push(i); } min_value[cnt]=value[q1.top()]; max_value[cnt++]=value[q2.top()]; for(int i=k+1;i<=n;++i){ q1.push(i),q2.push(i); while(i-q1.top()>=k) //cout<<"i="<<i<<":"<<q1.top()<<"."<<value[q1.top()]<<endl; q1.pop(); min_value[cnt]=value[q1.top()]; while(i-q2.top()>=k) q2.pop(); max_value[cnt++]=value[q2.top()]; } printf("%d",min_value[0]); for(int i=1;i<cnt;++i) printf(" %d",min_value[i]); printf("\n"); printf("%d",max_value[0]); for(int i=1;i<cnt;++i) printf(" %d",max_value[i]); printf("\n"); }}
0 0
- UESTC -- 201 Sliding Window(队列)
- Sliding Window (单调队列)
- Sliding Window (单调队列)
- uestc oj 1221 Sliding Window
- poj 2823 Sliding Window(单调队列)
- POJ 2823 Sliding Window(单调队列)
- POJ 2823 Sliding Window(单调队列)
- poj 2823 Sliding Window(单调队列)
- poj 2823 Sliding Window ( 单调队列 )
- POJ 2823 Sliding Window (单调队列)
- poj 2823 Sliding Window(单调队列)
- poj - 2823 - Sliding Window(单调队列)
- POJ 2823 Sliding Window (单调队列)
- POJ 2823 Sliding Window(单调队列)
- POJ 2823 Sliding Window(单调队列)
- POJ2823--Sliding Window(单调队列)
- POJ 2823 Sliding Window(单调队列)
- POJ 2823 Sliding Window (单调队列)
- 解决linux top命令提示的unknown terminal type的问题
- Structual设计--Decorator 模式
- [乐意黎原创] php 和 apache 的配置
- 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
- 关于多线程创建时CreateThread和_beginthreadex的区别
- UESTC -- 201 Sliding Window(队列)
- 总结了近百个Android优秀开源项目,覆盖Android开发的每个角落
- Activity启动模式/加载模式
- SpringAOP功能自我调用的解决方案
- ANDROID STRINGS.XML的特殊字符_安卓STRING.XML添加空格或字符的方法
- strcpy、memcpy和memset的区别
- C++运算符重载(3) - 什么时候需要自定义赋值操作符
- 获取数据库所有列以及列的类型是否为空是否为默认值是否为主键
- iOS开发系列--iOS应用架构谈