洛谷-1886 【模板】滑动窗口

题解:洛谷 P1886 【模板】单调队列 / 滑动窗口 等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。有一个长为 n 的序列 a,以及一个大小为 k 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。输入一共有两行,第一行有两个正整数 n,k。第二行 n 个整数,表示序列 a。输出共两行,第一行为每次窗口滑动的最小值。第二行为每次窗口滑动的最大值。#普及# #单调队列# 阅读详情

题目描述
现在有一堆数字共N个数字(N<=10^6),以及一个大小为k的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。
例如:
The array is [1 3 -1 -3 5 3 6 7], and k = 3.
在这里插入图片描述
输入输出格式
输入格式:
输入一共有两行,第一行为n,k。
第二行为n个数(<INT_MAX).
输出格式:
输出共两行,第一行为每次窗口滑动的最小值
第二行为每次窗口滑动的最大值

输入输出样例
输入样例#1:
8 3
1 3 -1 -3 5 3 6 7

输出样例#1:
-1 -3 -3 -3 3 3
3 3 5 5 6 7

说明
50%的数据,n<=10^5
100%的数据,n<=10^6

解释:维护一个单调增的双端队列,那么每次最小一定是在队首,把违法的给去掉就好了

#include<iostream>
#define N 1000004
#include<deque>
using namespace std;
int a[N]={0};
deque<int> q;
int n=0,k=0;
void ok(int x){
    q.clear();
    for(int i=1;i<=min(n,k);i++){
        if(q.empty()) q.push_back(i);
        else{
            while(q.size()&&a[q.back()]>=a[i]) q.pop_back();
            q.push_back(i);
        }
    }
    cout<<x*a[q.front()];
    for(int i=min(n,k)+1;i<=n;i++){
        while(q.size()&&a[q.back()]>=a[i]) q.pop_back();
        q.push_back(i);
        while(q.front()<=i-k) q.pop_front();
         cout<<" "<<x*a[q.front()];
    }
    cout<<endl;
}
int main(){
    ios::sync_with_stdio(false);
    cin>>n>>k;
    for(int i=1;i<=n;i++) cin>>a[i];
    ok(1);
    for(int i=1;i<=n;i++) a[i]=-a[i];
    ok(-1);
    return 0;
}

MOOS-ivp 实验一 MOOS软件的安装与执行 MOOS-ivp实验一 实验一步骤总结 文章目录MOOS-ivp实验一前言一、实验一1.下载软件2.安装必要的插件3.安装后检查4.路径添加5.执行示例文件总结 前言 在moos学习过程中,我觉得最好把学习的每一步骤都总结一下,方便日后进行回顾。moos官网设置了十八个实验,涉及到了moos的各个方面,完成这些实验也是moos入门的好办法。 一、实验一 实验一主要内容仅仅是软件的安装,仅仅这一步就花费了我接近两天的时间。主要问题发生在linux系统的配置问题上。 1.下载软件 svn co https: 阅读详情

相关推荐

地心地固坐标系与北天东坐标系的转换

经过这一步旋转,x3轴和y3轴就处在过O3点的经度线所在的平面了,而且z3轴指向了东。将图3的坐标系旋转成图2的样子。这里需要多次旋转,每次以某个轴为对称轴进行旋转,对应的坐标变换参考。的原点在地心,Z轴指向北极点,X轴指向本初子午线与赤道的交点,Y轴指向符合右手定则,如下图所示。下面实现地心地固坐标系到北天东坐标系的转换,问题描述为:设一点。以y1轴为对称轴,顺时针旋转90°,得到图4的样子。,X轴指向北,Y轴指向天,Z轴指向东,如下图所示。因此,北天东坐标下的坐标为。点在图3坐标系下的坐标。

csdnqixiaoxin的博客 3555

LeetCode239 & 洛谷P1886:滑动窗口

滑动窗口题目描述 题目描述 有一个长为 n 的序列 a,以及一个大小为 k 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。 例如: The array is [1,3,−1,−3,5,3,6,7], and k = 3。 输入格式 输入一共有两行,第一行有两个正整数 n,k。 第二行 n 个整数,表示序列 a 输出格式 输出共两行,第一行为每次窗口滑动的最小值 第二行为每次窗口滑动的最大值 输入输出样例 输入 8 3 1 3 -1 -3 5 3

全网粉丝30W+,优快云、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 1511

【NLG】(六)文本生成评价指标—— ROUGE原理及代码示例

前奏: 【NLG】(一)文本生成评价指标——BLEU原理及代码示例 【NLG】(二)文本生成评价指标—— METEOR原理及代码示例 【NLG】(三)文本生成评价指标—— ENTROPY原理及代码示例 【NLG】(四)文本生成评价指标—— diversity原理及代码示例 【NLG】(五)文本生成评价指标—— kl_divergence原理及代码示例 1.ROUGE原理 2.优缺点 3.如何算ROUGE ...

凝眸伏笔的博客 1万+

洛谷 - P1886 滑动窗口(单调队列/线段树)

题目链接:点击查看 题目大意:给出一个由n个数构成的序列,再给出一个长度为k的窗口,这个窗口从第一个下标开始一直向后移动,每次移动一个单位,每次移动询问一次该窗口中的最大值和最小值,最后输出答案 题目分析:看似是一个模拟,其实暴力模拟肯定会爆,因为涉及到区间最值问题,而且还是静态的询问,所以这个题目有三种方法可以解决,分别是st表,线段树和单调队列,因为st表我不会优化,所以有五个测试点MLE...

Falcon的博客 669

深入剖析一个卷积块(ConvBlock)

深入剖析一个卷积块(ConvBlock)

qq_45670407的博客 1920

Maya ACES工作流程配置(Arnold 及 RedShift 贴图配置规范-还原出SP-Aces流程下贴图正确的效果) PS还原Aces流程下渲染的图

*如果使用SP,项目工程如果新建的时候设置的就是Aces的流程的话,按规范正常导出即可,贴图会带上相对应的后缀,然后贴图导入材质球的时候会根据后缀自动设置相对应的色彩空间;**万一不是,就自己手动设置一下对应的色彩空间即可;然后点击选择当前的或者选择全部导入的贴图,点击右下角后,开始转换;我复制了一下,一个默认没有LUT的效果,然后另外一个是加载2个LUT后的还原效果,和渲染的效果应该是没有区别的,至少我没有看出明显的区别;把需要转换的贴图拖拽到左侧,然后右面选择需要转换到的相对应的色彩空间;...

Yuulily 7993

洛谷:P1886 滑动窗口 之 (彻底搞懂单调队列)

彻底掌握和理解单调队列

qq_66500237的博客 1829

UE4项目迁移指南:如何无缝导入外部.uasset文件并保持材质关联

本文详细解析了将外部.uasset文件无缝导入UE4项目的专业方法。针对手动复制文件时常见的材质关联丢失问题,提供了使用引用查看器进行诊断和修复的实用技巧,并推荐使用引擎内置的“迁移”功能确保资源依赖关系的完整性,帮助开发者高效整合项目资源。

t8u9v0的博客 1046

(洛谷入门系列,适合洛谷新用户)洛谷功能全解

对洛谷功能进行详细解说,适合初入洛谷的新手阅读。

rrc12345的博客 10万+

化学气相沉积CVD工艺中MKS下游排气高速节流阀的国产化替代方案及产品

对标MKS、VAT和CDK等国外公司的下游排气高速节流阀系列产品,本文介绍了相应的国产化替代方案和产品。基于CVD工艺,技术方案将下游流量调节阀变为了下游压力调节阀,并采用分体结构,将调压阀与PID控制器分离,调压阀具备大口径和高速功能,电子气控驱动调压阀快速动作,PID控制器接收真空计信号和控制气控驱动阀,可实现阀门全开时间小于0.1秒。

Shanghai_Eyoung的博客 5259

Qualcomm 常用NV列表

^ NV ITEM ^ 功能^^ |NV10 |mode prefer,找网模式|新平台使用NV80000| ^NV74 NV74=0关闭自动接听电话^ |NV240 |NV240=FALSE|EVDO出现网络的问题,此项必须设定为FALSE| |NV255 |CDMA规避网络列表(SID/NID号)| |NV256 |

sdrgtywretyeruet的专栏 5768

洛谷p1886(滑动窗口,单调队列)

3.i变为2,第一个while还是不执行,因为没有超出范围,第二个while也不执行,因为nums[i](此时是-1)小于maxQueue[rear].index(此时是3),然后rear++(变为1),rear的下标变为2,值变为-1,这时的i>=k-1(即已达到动画窗格的大小范围),输出front的值。2.i++,变为1,第一个while不执行,因为第二个条件中的范围没有超出,再看第二个while,两个条件都符合,rear--,后++(此时rear变为0)。

nsczx的博客 630

23、管状剪纸结构的研究与功能生成连杆机构的综合设计

本文研究了管状剪纸结构的压缩运动特性,通过剪纸技术将非刚性可折叠的Yoshimura和Kresling折纸结构转化为刚性可折叠结构,并提出径向可闭合剪纸(RC-kiri)构型。推导了位移与折叠角之间的数学关系,设计了带外部LET接头的RC-kiri模型,建立了力-位移理论模型并通过Abaqus进行有限元验证,制作了3D打印物理模型以测量直径变化。同时,研究了四杆和六杆功能生成连杆机构的综合设计方法,基于负闭合运动链和最小二乘法实现函数生成。结果表明理论、仿真与实验整体吻合良好,误差来源得到分析,为机器人、机

nokia的博客 167

洛谷: P1886 滑动窗口 /【模板】单调队列

窗口位置[1 3 -1] -3 5 3 6 7 1 [3 -1 -3] 5 3 6 7 1 3 [-1 -3 5] 3 6 7 1 3 -1 [-3 5 3] 6 7 1 3 -1 -3 [5 3 6] 7 1 3 -1 -3 5 [3 6 7]​最小值−1−3−3−333​最大值335567​​。如果要求滑动窗口中的最小值,则要求单调队列里的元素是按照递减顺序排列的。

2301_81848095的博客 379

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【洛谷】P1886 滑动窗口 /【模板】单调队列,经典!

一道经典的单调队列模板题!!附详细解释和代码

m0_74140776的博客 567

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

队列_滑动窗口【模板】(洛谷P1886)

有一个长为n的序列a,以及一个大小为k的窗口。现在这个窗口从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最小值和最大值。例如,对于序列13−1−35367以及k3窗口位置​最小值−1−3−3−333​最大值335567​​。

2601_95612197的博客 418

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

洛谷P1886 滑动窗口(单调队列模板题)

Description 给定一个长度为n(n<=10^6)的数组。有一个大小为k的滑动窗口从数组的最左端移动到最右端。你可以看到窗口中的k个数字。窗口每次向右滑动一个数字的距离。下面是一个例子:数组是[1 3 -1 -3 5 3 6 7], k = 3。 窗口位置 最小值 最大值 [13-1]-35367 -1 3 1[3-1-3]5367 -3 3 13[-1-35]3...

Charser的博客 2791

洛谷 P1886 滑动窗口 /【模板】单调队列

洛谷 P1886 滑动窗口 /【模板】单调队列 用数组que模拟双端队列(前后都可踢出元素) #include <iostream> #include <cstdio> #include <cmath> #include <string> #include <cstring> #include <algorithm> ...

L_X_ 279

洛谷P1886 滑动窗口 【模板】单调队列 deque

洛谷P1886 滑动窗口 【模板】单调队列 deque单调队列具体思路AC代码 虽然这个题提示了是单调队列的板子题,但是之前都没了解过单调队列这个数据结构,我还是下意识的暴力了一波,果不其然,TLE在最后一个样例上 暴力解法复杂度:O(nk) 单调队列解法复杂度: O(n) 差距还是很致命的 单调队列 百度百科给出的解释:单调队列,即单调递减或单调递增的队列。使用频率不高,但在有些程序中会有非同寻常的作用。 为了维护这个单调性,在每次往队列中插入数据时,需要注意的就是,当前待插入到队尾的值是否破坏了当前

碳碳双键 325

【洛谷P1886】滑动窗口【单调队列模板】

原题和样例见洛谷:滑动窗口 分析 这题是单调队列的模板题 队列就是先进先出的数据结构。队列的进出方式类似于我们排队打饭,来排队的人从队尾进入,打完饭的人从前面出来。有头指针和尾指针控制。 队列的单调性就是一个队列保持递增或者递减。 举个例子:假如你在饭堂打饭时,有个人人高马大,急匆匆跑过来,看排了这么一长串队,心中急躁,从队列最后的一个人开始,看见好欺负的就赶走,自己站着,直到干不过的就停下,这个人的插队行为类似于下面这幅图。 图中,企图插队的人战斗力为6,队尾的5,4,1都小于它,,6把这三个人全部挤.

ssllyr 281

洛谷P1886 滑动窗口 /【模板】单调队列

本文介绍了使用单调队列解决洛谷P1886滑动窗口问题的模板代码。通过维护一个单调递减队列获取窗口最大值,一个单调递增队列获取窗口最小值。算法核心是遍历数组时动态维护这两个队列:移除不满足单调性的元素,确保队首元素在窗口范围内,当窗口达到指定大小时记录极值。代码清晰展示了如何用双端队列实现O(n)时间复杂度的滑动窗口极值查询,最后分别输出每个窗口的最小值和最大值序列。

xzk20121002的博客 451

洛谷:P1886 滑动窗口 /【模板】单调队列

滑动窗口模板题

qq_74924951的博客 870

洛谷1886 滑动窗口 /【模板】单调队列

1886 题目描述 有一个长为 nn 的序列 aa,以及一个大小为 kk 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。 例如: The array is [1,3,-1,-3,5,3,6,7], and k = 3。 输入格式 输入一共有两行,第一行有两个正整数 n,kn,k。 第二行 nn 个整数,表示序列 aa 输出格式 输出共两行,第一行为每次窗口滑动的最小值 第二行为每次窗口滑动的最大值 #include <iostream> using

Gyibin的博客 290

洛谷P1886 滑动窗口 /【模板】单调队列-队列

摘要:题目要求计算滑动窗口中的最小值和最大值。给定长度为n的序列和大小为k的窗口,窗口从左向右滑动时,需高效输出每个窗口的最小值和最大值。使用单调队列优化:维护单调递增队列求最小值,单调递减队列求最大值。每个元素最多入队和出队一次,时间复杂度O(n),适用于大规模数据(n≤1e6)。C++实现通过双端队列分别处理最小值与最大值,确保高效求解。

lan_in的博客 948

【洛谷】P1886 滑动窗口 /【模板】单调队列

题目地址: https://www.luogu.com.cn/problem/P1886 题目描述: 有一个长为nnn的序列aaa,以及一个大小为kkk的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。 输入格式: 输入一共有两行,第一行有两个正整数n,kn,kn,k。 第二行nnn个整数,表示序列aaa。 输出格式: 输出共两行,第一行为每次窗口滑动的最小值,第二行为每次窗口滑动的最大值。 数据范围: 对于50%50\%50%的数据,1≤n≤1051 \le n

数学、算法爱好者的博客 222
上一篇: 洛谷-3388 【模板】割点(割顶)
下一篇: 洛谷-3812 【模板】线性基
mkopvec
博客等级 码龄8年 22粉丝 331原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值