洛谷1440 求m区间的最小值 单调队列
题目描述
一个含有n项的数列(n<=2000000),求出每一项前的m个数到它这个区间内的最小值。若前面的数不足m项则从第1个数开始,若前面没有数则输出0。
输入格式:
第一行两个数n,m。
第二行,n个正整数,为所给定的数列。
输出格式:
n行,第i行的一个数ai,为所求序列中第i个数前m个数的最小值。
输入样例#1:
6 2
7 8 1 4 3 2
输出样例#1:
0
7
7
1
1
3 单调队列模板题
用一个队列维护第i个数前m个最小值的位置
注意在判断的时候要保持队列非空,否则会导致在队列为空的时候队首提前
#include<bits/stdc++.h>
using namespace std;
#define maxn 2000005
int a[maxn],q[maxn];
int n,m,l=,r;
int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
}
for(int i=;i<=n;i++){
printf("%d\n",a[q[l]]);
if(i-q[l]+>m&&l<=r)l++;
while(a[i]<a[q[r]]&&l<=r)r--;
q[++r]=i;
}
return ;
}
//Luogu1440
//拿STLdeque写了会TLE一个点还要挂快速读入才能A
#include<bits/stdc++.h>
using namespace std;
int read(){
int x=,t=;char c;c=getchar();
while(c<''||c>''){if(c=='-')t=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*t;
}
int N,M,a[];
deque <int> q;
int main()
{
N=read(),M=read();
for(int i=;i<=N;i++){
if(q.empty())printf("0\n");
else printf("%d\n",a[q.front()]);
a[i]=read();
if(i-q.front()+>M&&!q.empty())q.pop_front();
while(!q.empty()&&a[q.back()]>a[i])q.pop_back();
q.push_back(i);
}
return ;
}
STL代码 该回答已被折叠
洛谷1440 求m区间的最小值 单调队列的更多相关文章
- 洛谷1440 求m区间内的最小值
洛谷1440 求m区间内的最小值 本题地址:http://www.luogu.org/problem/show?pid=1440 题目描述 一个含有n项的数列(n<=2000000),求出每一项 ...
- 洛谷 1440 求m区间内的最小值
洛谷 1440 求m区间内的最小值 题目描述 一个含有n项的数列(n<=2000000),求出每一项前的m个数到它这个区间内的最小值.若前面的数不足m项则从第1个数开始,若前面没有数则输出0. ...
- 洛谷 P1440 求m区间内的最小值
传送门 思路 由于数据范围很大,所以使用单调队列,和滑动窗口这道题类似 首先第一个数输出\(0\),因为第一个数之前没有数 然后通过样例我们发现,最后一个数并没有派上什么用场,所以循环\(n-1\)轮 ...
- 洛谷—— P1440 求m区间内的最小值
https://www.luogu.org/problemnew/show/P1440 题目描述 一个含有n项的数列(n<=2000000),求出每一项前的m个数到它这个区间内的最小值.若前面的 ...
- [洛谷P1440]求m区间内的最小值
题目大意:给你n个数,求出每个数前m位的最小值 题解:单调队列,用一个可以双向弹出的队列来存一串数,满足里面的数具有单调性,我们可以假设它是单调递增的,即求最小的数.那么可以把要插入的这个数与队尾元素 ...
- 洛谷 P1440 求m区间内的最小值(单调队列)
题目链接 https://www.luogu.org/problemnew/show/P1440 显然是一道单调队列题目…… 解题思路 对于单调队列不明白的请看这一篇博客:https://www.cn ...
- 洛谷P2216 HAOI2007 理想的正方形 (单调队列)
题目就是要求在n*m的矩形中找出一个k*k的正方形(理想正方形),使得这个正方形内最值之差最小(就是要维护最大值和最小值),显然我们可以用单调队列维护. 但是二维平面上单调队列怎么用? 我们先对行处理 ...
- 洛谷P2569 股票交易【dp】【单调队列】
题目描述 最近 \text{lxhgww}lxhgww 又迷上了投资股票,通过一段时间的观察和学习,他总结出了股票行情的一些规律. 通过一段时间的观察,\text{lxhgww}lxhgww 预测到了 ...
- 洛谷 P2569[SCOI2010]股票交易(动规+单调队列)
//只能写出裸的动规,为什么会有人能想到用单调队列优化Orz 题目描述 最近lxhgww又迷上了投资股票,通过一段时间的观察和学习,他总结出了股票行情的一些规律. 通过一段时间的观察,lxhgww预测 ...
随机推荐
- FriendlyARM交叉工具链以及编译第一个arm9应用
不记录什么都会忘光!!!这两天又要用到开发板来做项目,可是好久没有碰了,最近一直在搞上层的东东,对rails和前端感兴趣,我这是不要毕业的节奏了吗?好吧,既然什么都忘光掉了,那就干脆来个痛快,重新装机 ...
- Kettle学习系列之Kettle能做什么?(三)
不多说,直接上干货! PDI(Kettle) 都能做什么? 可以说凡是有数据整合.转换.迁移的场景都可以使用PDI,他代替了完成数据转换任务的手工编码,降低了开发难度. 同时,我们可以在自己实际业务里 ...
- 记一次"未将对象引用设置到对象的实例"问题的排查过程
最近在给一个老项目做数据对接接口. 背景一 该项目最后更新日期为2006年,使用ASP.NET WebForm..Net2.0.OJB.Castle Avtive Record等.由于是某集团的子系统 ...
- AOJ GRL_1_A: Single Source Shortest Path (Dijktra算法求单源最短路径,邻接表)
题目链接:http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=GRL_1_A Single Source Shortest Path In ...
- c/s结构的自动化——pyautogui
环境:Python 3.5.3 pip install pyautogui -i http://pypi.douban.com/simple --trusted-host pypi.douban.co ...
- Nginx 防止SQL注入、XSS攻击的实践配置方法
下班的时候,发现博客访问缓慢,甚至出现504错误,通过 top -i 命令查看服务器负载发现负载数值飙升到3.2之多了,并且持续时间越来越频繁直至持续升高的趋势,还以为是被攻击了,对来访IP进行了阈值 ...
- BZOJ 2565 最长双回文串(manacher)
565: 最长双回文串 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3343 Solved: 1692[Submit][Status][Discu ...
- [codevs3955]最长严格上升子序列(加强版)
题目大意:给你一个序列,要你求该序列中最长严格上升子序列的长度. 解题思路:此题算是一道LIS模板题.普通的$O(n^2)$的LIS是会TLE的,因为$n\le 1000000$,所以此题要用单调队列 ...
- 【jQuery02】点击标题面板显示内容
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Ubuntu 如何进入系统文件/etc/profile修改内容
转载:https://blog.csdn.net/cfq1491/article/details/81088117 /etc/profile 默认权限为 -rw-r--r-- 即只有root用户可以修 ...