[第1章 1.2e2] 单调队列-滑动窗口
106 字
1 分钟
[第1章 1.2e2] 单调队列-滑动窗口
//666模拟了个优先队列,让这个队列头存当前最值//但队列内存的是位置,便于比较和输出//超出窗口后自动删掉前面多余部分#include <bits/stdc++.h>using namespace std;typedef long long ll;vector<ll> a;int main(){ ll n,k; cin>>n>>k; vector<ll> a(n); for(ll i=0;i<n;i++)cin>>a[i]; deque<ll> lo; bool fla=false; for(ll i=0;i<n;i++){ while(!lo.empty()&&a[lo.back()]>a[i])lo.pop_back(); lo.push_back(i); if(i>=k-1){ while(!lo.empty()&&i-lo.front()>=k)lo.pop_front(); if(fla)cout<<" "; cout<<a[lo.front()]; fla=true; } } cout<<endl; lo.clear(); fla=false; for(ll i=0;i<n;i++){ while(!lo.empty()&&a[lo.back()]<a[i])lo.pop_back(); lo.push_back(i); if(i>=k-1){ while(!lo.empty()&&i-lo.front()>=k)lo.pop_front(); if(fla)cout<<" "; cout<<a[lo.front()]; fla=true; } } cout<<endl; return 0;}支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
[第1章 1.2e2] 单调队列-滑动窗口
https://hecloud.top/posts/oi/12e2-单调队列-滑动窗口/相关文章智能推荐
1
16怪兽:手搓迷你容器
深入技术用 namespace 与 cgroups 亲手拼出一个最小可用的容器,回头对照 Docker 的每个概念。
2
15怪兽:底层原理
深入技术看懂 namespace、cgroups、veth、iptables 与 overlayfs 各自在哪一层做了什么。
3
14进阶:资源限制与性能
深入技术给容器划出 CPU 与内存的上限,并弄清一个容器为什么还能把宿主机拖垮。
4
13进阶:容器安全
深入技术把容器关进笼子:以非 root 运行、裁剪 Linux 能力、限制系统调用,并知道这些边界在哪。
5
总有一天我会搞清楚所有的细节
闲谈杂录如题
随机文章随机推荐





