NC50528 滑动窗口

简介: NC50528 滑动窗口

题目: NC50528 滑动窗口 ,哈哈,我们今天来看一道稍微复杂一点的题嘛,这是选自牛客上的一道题,好了,我们一起来看看题意吧:

考虑到直接复制题目,或者截屏的方式不是很方便阅读,我就把直接题目链接放下面!

题目传送门: NC50528 滑动窗口

思路:

单调队列的模板题,没什么好说的!

我们来看看成功AC的代码吧:

#include<bits/stdc++.h>
using namespace std;
int n,k;
const int N=1000010;
int a[N];
deque<int> q;
int main(){
    ios::sync_with_stdio(false);
    cin>>n>>k;
    for(int i=1;i<=n;i++) cin>>a[i];
    for(int i=1;i<=n;i++){
        if(i-k>=q.front()) q.pop_front();//判断是否越界
        while(!q.empty()&&a[q.back()]>=a[i]) q.pop_back();
        q.push_back(i);
        if(i-k>=0){
            cout<<a[q.front()]<<" ";
        }
    }
    while(!q.empty()) q.pop_back();//清空
    cout<<"\n";
    for(int i=1;i<=n;i++){
        if(i-k>=q.front()) q.pop_front();
        while(!q.empty()&&a[q.back()]<=a[i]) q.pop_back();
        q.push_back(i);
        if(i-k>=0){
            cout<<a[q.front()]<<" ";
        }
    }
    return 0;
}


相关文章
|
3天前
|
存储 缓存 网络协议
【JavaEE】——四次挥手,TCP状态转换,滑动窗口,流量控制
四次挥手、TCP状态转换、(listed,established,close_wait,time_wait),滑动窗口,ack丢包,数据丢包,流量控制
|
7月前
NC253077:小沙的悬崖
NC253077:小沙的悬崖
53 0
|
7月前
|
消息中间件 Kubernetes 网络协议
Tcp/ip 定时器与滑动窗口(持续更新)
Tcp/ip 定时器与滑动窗口(持续更新)
|
缓存 网络协议
图文秒懂TCP滑动窗口
小马无意中发现一个比较清晰的TCP滑动窗口视频教程,总结后在此分享,图文结合,一分钟即可秒懂窗口滑动原理,再也不怕面试官吓唬你了。视频源地址点这里,感谢原作者分享。
198 2
图文秒懂TCP滑动窗口
|
缓存 网络协议 算法
窗口到底有多滑动?揭秘TCP/IP滑动窗口的工作原理
当涉及网络性能优化和数据传输可靠性时,TCP/IP滑动窗口是一个关键的技术。本文的摘要将深入揭示TCP/IP滑动窗口的工作原理,探讨其在确保数据准确性和实现高效通信方面的重要性。通过对滑动窗口大小、流控制和数据包确认机制的解析,我们将揭示如何通过优化窗口大小和流控制参数来提升网络性能。此外,我们还将介绍滑动窗口在解决网络拥塞和丢包问题方面的作用,以及如何通过精准的窗口调整实现零丢失、百分之百到达的数据传输。通过理解滑动窗口的工作原理,读者将能够更好地理解网络通信的内部机制,并为优化其应用程序的性能提供有价值的见解。
420 0
窗口到底有多滑动?揭秘TCP/IP滑动窗口的工作原理
|
算法
[NC207040]丢手绢
[NC207040]丢手绢