luoguP1886 滑动窗口(单调队列模板题)
2024-10-07 00:46:28
题目链接:https://www.luogu.org/problem/P1886#submit
题意:给定n个数,求大小为k的滑动窗口中最小值和最大值。
思路:单调队列模板题。
AC代码:
#include<cstdio>
#include<algorithm>
using namespace std; const int maxn=1e6+;
int n,k,head,tail;
int a[maxn],q[maxn],p[maxn]; int main(){
scanf("%d%d",&n,&k);
for(int i=;i<=n;++i)
scanf("%d",&a[i]);
head=,tail=;
for(int i=;i<=n;++i){
while(tail>=head&&q[tail]>=a[i])
--tail;
q[++tail]=a[i];
p[tail]=i;
while(p[head]<=i-k)
++head;
if(i>=k) printf("%d ",q[head]);
}
printf("\n");
head=,tail=;
for(int i=;i<=n;++i){
while(tail>=head&&q[tail]<=a[i])
--tail;
q[++tail]=a[i];
p[tail]=i;
while(p[head]<=i-k)
++head;
if(i>=k) printf("%d ",q[head]);
}
printf("\n");
return ;
}
最新文章
- Linux下安装MongoDB
- Qt 获取本机ip地址 【转自 CSDN jpchen609
- 从〇开始构架前端(NLDV框架)
- eclipse中 properties文件编码问题
- visualvm添加远程管理-centos
- 移动端web出现的一系列问题
- LA 2678 Subsequence
- HDOJ(HDU) 2109 Fighting for HDU(简单排序比较)
- android开发论坛
- 近期待学习&;目标内容
- 剑指offer(59)按之字形顺序打印二叉树
- hdu 4939 三色塔防
- 【下载】分享一个ida脚本,非常方便
- netty学习总结(一)
- MapReduce实现大矩阵乘法
- Intellij IDEA 部署 项目在tomcat 原理
- github 远程仓库操作
- SQL Server 查询数据库表的列数
- Chrome自定义最小字号
- Objective-C(装箱和拆箱)
热门文章
- CSS的水平居中和垂直居中
- POJ - 3162 Walking Race 树形dp 单调队列
- np.max() 和 np.maximum()的区别
- ngx_http_auth_request_module 第三方认证
- AtCoder AGC004F Namori (图论)
- Spring Boot教程(三十七)整合MyBatis
- Speed
- 关于MongoDB在windows下安装【解压版】
- JavaScript 高级系列之节流 [throttle] 与防抖 [debounce]
- Python 读文件:IOError: [Errno 0] Error