poj2823-单调队列
来源:互联网 发布:中国汽车发展历史 知乎 编辑:程序博客网 时间:2024/05/17 08:11
#include<stdio.h>#include<string.h>#include<algorithm>#include<queue>#define M 1000005using namespace std;int head,rear,n,a[M],q[M],k,mi[M],ma[M];void in_queue(int i){ while(head<=rear&&a[i]<=a[ q[rear] ])//入队,删除队尾元素中比它大的 rear--; q[++rear]=i;}void out_queue(int i){ if(q[head] < i-k+1) //删除队首元素 head++;}void in_queue1(int i){ while(head<=rear && a[i]>=a[ q[rear] ])//删除队尾元素比它小的 rear--; q[++rear]=i;}int main(){ int l; while(scanf("%d%d",&n,&k)!=EOF) { if(k>=n) { k=n; } l=0,head=0,rear=-1; for(int i=1; i<=n; i++) { scanf("%d",&a[i]); in_queue(i); out_queue(i); if(i>=k) { mi[l++]=a[ q[head] ]; } } l=0,head=0,rear=-1; for(int i=1; i<=n ; i++) { in_queue1(i); out_queue(i); if(i>=k) ma[l++]=a[ q[head] ]; } for(int i=0; i<n-k+1 ; i++) printf("%d ",mi[i]); printf("\n"); for(int i=0; i<n-k+1 ; i++) printf("%d ",ma[i]); printf("\n"); } return 0;}
0 0
- poj2823 单调队列
- 单调队列 POJ2823
- 单调队列 (POJ2823)
- POJ2823单调队列
- poj2823单调队列
- POJ2823 单调队列
- poj2823(单调队列)
- poj2823(单调队列)
- 单调队列-poj2823
- POJ2823(单调队列)
- poj2823(单调队列)
- poj2823(单调队列)
- poj2823-单调队列
- poj2823 单调队列
- POJ2823 单调队列
- POJ2823 --单调队列
- 单调队列 poj2823
- POJ2823 单调队列
- Spring(四)JavaBean作用范围的配置及生命周期
- 模板的使用
- 神、上帝以及老天爷
- Low Latency Network for Small Business
- matlab读取文件夹内容的一些技巧备注
- poj2823-单调队列
- 使用Nessus扫描Windows XP SP1
- MathType与Office公式编辑器的差异
- JavaScript 图片的上传前预览(兼容所有浏览器)
- UITableView 当滚动的时候会有多出的空白,去掉空白的方法
- maven构建可执行jar包
- linux下错误的捕获:errno和strerror的使用
- 工厂设计模式
- ruby on rails调试技术