【每日一题】4.滑动窗口 (单调队列问题)
2021-04-08 20:07
25 查看
补题链接:Here
这道题基本就是单调队列模板,不过直接看过去双指针(滑动窗口也是可以的)
每次先把已经超过范围的扔掉,然后把范围内不可能成为最优解的扔掉,然后入队。
// Murabito-B 21/04/08 #include <bits/stdc++.h> using ll = long long; using namespace std; const int N = 1e6 + 10; int A , d ; int main() { ios_base::sync_with_stdio(false), cin.tie(0); int n, k; cin >> n >> k; for (int i = 1; i <= n; ++i) cin >> A[i]; int l = 0, r = 1; d[0] = 1; for (int i = 2; i <= n; ++i) { if (i - d[l] >= k && (l < r)) l++; while (r > l && A[d[r - 1]] >= A[i]) r--; d[r++] = i; if (i >= k) cout << A[d[l]] << " "; } cout << endl; l = 0, r = 1; d[0] = 1; for (int i = 2; i <= n; ++i) { if (i - d[l] >= k && (l < r)) l++; while (r > l && A[d[r - 1]] <= A[i]) r--; d[r++] = i; if (i >= k) cout << A[d[l]] << " "; } return 0; }
相关文章推荐
- leetcode-239滑动窗口问题(单调队列问题)
- 详解--单调队列 经典滑动窗口问题
- POJ 2823 Sliding Window(滑动窗口问题__优先队列||单调队列)
- POJ 2823 (从经典滑动窗口最大值问题入门单调队列)
- 单调队列(滑动窗口问题)(待续...)
- POJ 2823 (从经典滑动窗口最大值问题入门单调队列)
- 单调队列与滑动窗口(Sliding window, poj2823)
- 单调队列优化多重背包(含构造问题<POJ 1742 coin>)
- 单调队列(滑动窗口):纪念我因head tail的WA
- 单调队列的学习 - 滑动窗口求最大/小值
- 入门经典_Chap08_题解总结:极角扫描法 滑动窗口 单调队列 单调栈
- 洛谷p1886滑动窗口最大最小值 双单调队列
- BZOJ 1342: [Baltic2007]Sound静音问题( 单调队列 )
- Leetcode刷题(13) 滑动窗口最大值(单调队列专用)
- 多重背包问题的单调队列优化 转载
- sliding window 滑动窗口(单调队列)
- poj 2823 滑动窗口 单调队列
- 用单调队列的思想优化一些dp问题
- 单调队列 滑动窗口
- week5 单调队列 滑动窗口