【洛谷】P1440 求区间最小值
来源:互联网 发布:mac如何整理文件夹 编辑:程序博客网 时间:2024/05/17 06:37
传送门
这道题目一眼看去,先想到的必然是暴力,但是数据范围
/*6 27 8 1 4 3 2077113*/
- 因为第一个数前面没有数,输出0
- 第二个数之前的最小数为7,输出7
- 第三个数之前2个的最小数为7,输出7
- 第四个数之前2个的最小数为1,输出1
- 第五个数之前2个的最小数为1,输出1
这段分析看到很头晕,但是如果我们使用一个辅助数组
大家看,这张图生动形象地说明了这道题目就是一个裸的单调队列,具体看代码:
#include<bits/stdc++.h>using namespace std;int a[2000010],q[2000010],head=1,tail;int main(){ int i,j,k,n,m; scanf("%d%d",&n,&m); for(i=1;i<=n;i++) scanf("%d",&a[i]); for(i=1;i<=n;i++){ printf("%d\n",a[q[head]]);//这个就是输出单调队列的队首 if(i-q[head]+1>m && head<=tail)head++;//这个是判断队首是否在集合之中,如果不在,那么他的下一个必然在[这个很绕啊] while(a[i]<a[q[tail]] && head<=tail)tail--;//维护单调队列[上升] q[++tail]=i;[入队] } return 0;}
整个代码就是这么简单,根本不需要线段树之类的大神用具
阅读全文
0 0
- 【洛谷】P1440 求区间最小值
- 洛谷 P1440 求m区间内的最小值
- 洛谷 P1440 求m区间内的最小值
- 洛谷P1440 求m区间内的最小值
- 洛谷 P1440 求m区间内的最小值
- 优先队列——洛谷P1440 求m区间内的最小值
- 【luogu P1440】求(DQ)M区间内的最小值
- 洛谷1440 求m区间内的最小值
- 【线段树】 求区间最小值以及区间最小值
- RMQ算法 快速求区间最大最小值
- RMQ板子 求区间最大最小值
- ST表求区间最大最小值
- 洛谷 P1440 单调队列
- RMQ区间求最值 后缀数组height预处理(区间求最小值)
- UVA 1619 - Feel Good(dp 求区间最小值 附加RMQ)(区间最小值优化)
- hdu5289RMQ求区间最大最小值和单调队列维护区间最大最小值
- 区间最小值
- poj 2823 线段树 求固定区间的最大最小值
- 用屏幕录像专家录制视频:(录制视频大小尽量小)
- 如何判断一个String是否能转换为数字
- HDU6181-Two Paths
- Spark学习笔记(2)解密Spark Streaming运行机制和架构
- Java并发编程:volatile关键字解析
- 【洛谷】P1440 求区间最小值
- 探索React(序章)
- Java基础学习总结——Java对象的序列化和反序列化
- Centos 安装与配置Java
- 分布式缓存学习之一:Memcached, Redis, MongoDB区别
- 纸上谈兵
- 静态html页面关键字搜索高亮
- Unreadable Notebook NotJSONError('Notebook does not appear to be JSON: u\'{\\n
- BAT等互联网公司的职称晋升与评定