[luoguP1440] 求m区间内的最小值(单调队列 || 线段树)
2017-05-15 10:56
295 查看
这种水题没必要搞线段树了,单调队列就行啊。
——代码
#include <cstdio> const int MAXN = 2000001; int n, m, h = 1, t = 1; int a[MAXN], q[MAXN]; int main() { int i; scanf("%d %d", &n, &m); for(i = 1; i <= n; i++) scanf("%d", &a[i]); q[1] = 1; printf("0\n"); for(i = 2; i <= n; i++) { while(h <= t && q[h] < i - m) h++; printf("%d\n", a[q[h]]); while(h <= t && a[q[t]] > a[i]) t--; q[++t] = i; } return 0; }View Code
相关文章推荐
- 【HDU3530】【单调队列(双)】Subsequence 【长度为n的数列,求最长子区间的长度,使得区间的最大值与最小值的差满足一个范围】
- 双端队列(单调队列)poj2823 区间最小值(RMQ也可以)
- Sliding Window(单调队列维护或线段树求区间最大最小值)
- NEFU 1268 区间最小值求和(单调队列||RMQ)
- 2823 Sliding Window 求区间最值 线段树好慢,能用单调队列
- 【数据结构】[luoguP1440]求m区间内的最小值
- hdu5289RMQ求区间最大最小值和单调队列维护区间最大最小值
- nefu 1268 区间最小值求和(单调队列)
- 单调队列——求m区间内的最小值
- HDU 5749 Colmerauer(单调栈或单调队列求解固定区间最大或最小值)
- Codeforces VK Cup 2015 - Qualification Round 1 D. Closest Equals 离线线段树 求区间相同数的最小距离
- 10.11 NOIP模拟赛 DP + 线段树 + DP + 单调队列
- NYOJ 1185 最大最小值 (线段树 & 区间最值查询)
- POJ3264(线段树求区间最大值和最小值)
- 2015 年 蓝桥杯 A 组 C/C++ 第十题 灾后重建 【最小生成树 + LCA倍增 + 线段树维护区间max】
- SPOJ1748 - SEQPAR2 二分答案 DP优化 单调队列+线段树
- 线段树回顾<找区间最小值,点修改>
- (单调队列优化) 最小花费 (CD1690)
- poj 2823 单调队列 (求特定长度区间的最大最小值)
- POJ 3162 Walking Race(树形dp+单调队列 or 线段树)