洛谷 P1440 求m区间内的最小值
来源:互联网 发布:网络视频格式有哪些 编辑:程序博客网 时间:2024/06/07 05:19
题目大意:
一个含有n项的数列,求出每一项前的m个数到它这个区间内的最小值。若前面的数不足m项则从第1个数开始,若前面没有数则输出0。
m≤n≤2000000
题解:
这题就是一道单调队列的模板,
不过每次到第i个时求的是[i-m,i-1]的最小值,所以不要到i,然后就套单调队列。
单调队列不会的可以去看一下我的另一篇博文。
http://blog.csdn.net/gx_man_vip/article/details/78554177
时间复杂度:O(n)
var a,min:Array [0..2000001] of longint; i,n,m,phead,qtail:longint;begin readln(n,m); phead:=1; qtail:=0; for i:=1 to n do begin read(a[i]); if (min[phead]<i-m) then inc(phead); while (phead<=qtail) and (a[i]<a[min[qtail]]) do dec(qtail); writeln(a[min[phead]]); qtail:=qtail+1; min[qtail]:=i; end;end.
阅读全文
0 0
- 洛谷 P1440 求m区间内的最小值
- 洛谷 P1440 求m区间内的最小值
- 洛谷P1440 求m区间内的最小值
- 洛谷 P1440 求m区间内的最小值
- 【luogu P1440】求(DQ)M区间内的最小值
- 优先队列——洛谷P1440 求m区间内的最小值
- 【洛谷】P1440 求区间最小值
- 洛谷1440 求m区间内的最小值
- 【数据结构】[luoguP1440]求m区间内的最小值
- Oracle求连续区间内的最大最小值
- 求 区间[a,b]内满足p^k*q*^m(k>m)的数的个数
- CF Mike and Feet (求连续区间内长度为i的最小值)单调栈
- POJ 3264(线段树求区间内最大值和最小值)
- 求区间内的素数
- hdu 5289 Assignment(给一个数组,求有多少个区间,满足区间内的最大值和最小值之差小于k)
- poj 2823 线段树 求固定区间的最大最小值
- 线段树求区间最大值与最小值的差
- 求一段区间内素数的个数
- (十一)、Java复习笔记之多线程(2)
- BootStrap + AngularJS 实现自定义分页
- Ajax提交与传统表单提交的区别说明
- 八数码广搜代码
- Hbase API使用(一)
- 洛谷 P1440 求m区间内的最小值
- docker常用命令
- [JAVA-GUI]Swing里JPopMenu中JMenuItem的点击事件
- Java并发编程札记-(一)基础-06synchronized详解
- 更重点---Hive的函数+Hive优化
- SVN的学习之路九(Eclipse使用SVN)
- 招银科技2017年笔试题,使用python进行简单的字符串压缩
- [leetcode]#24. Swap Nodes in Pairs
- C语言题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数