单调队列 & 单调队列优化DP & 题目推荐

浅谈单调队列deque 引入 引入问题(P1440):洛谷题面链接 题目描述 一个含有n项的数列(n<=2000000),求出每一项前的m个数到它这个区间内的最小值。若前面的数不足m项则从第1个数开始,若前面没有数则输出0。 输入格式 第一行两个数n,m。 第二行,n个正整数,为所给定的数列。 输出格式 n行,第i行的一个数ai,为所求序列中第i个数前m个数的最小值。 输入输出样例 输入 6 2 7 8 1 4 3... 阅读详情

来看一道题

扫描

题目描述
有一个 1 ∗ n 的矩阵,有 n 个正整数。

现在给你一个可以盖住连续的 k 的数的木板。

一开始木板盖住了矩阵的第 1 ∼ k 个数,每次将木板向右移动一个单位,直到右端与第 n 个数重合。

每次移动前输出被覆盖住的最大的数是多少。

输入格式
第一行两个数,n,k,表示共有 n 个数,木板可以盖住 k 个数。

第二行 n 个数,表示矩阵中的元素。

输出格式
共 n − k + 1 行,每行一个正整数。

第 i 行表示第 i ∼ i + k − 1 个数中最大值是多少。

说明/提示
对于 100% 的数据保证:1 ≤ n ≤ 2 ∗ 1e6,1 ≤ k ≤ n

矩阵中元素大小不超过 1e4。


这道题我们很明显是没有办法暴力的(极限复杂度 O ( N 2 ) O(N^2) O(N2))

那么我们就要想办法优化,这时候就需要引入我们的单调队列

单调队列

我们需要维护一个队列让他保持单调性(递增或者递减)

形象的来说就是一些帅哥在比谁长得帅,每个人都有一个身高和颜值

首先进来的是xyc,他的身高是1m,颜值是 − ∞ -\infty −∞,但是因为队里是空的,所以我们还是让他入队

队列里变成

编号 姓名 身高 颜值
1 xyc 1m − ∞ -\infty −∞

后来又来了一个gjm,他的身高是1.1m,颜值是0,那么,xyc既比gjm矮,又没有gjm帅,所以xyc肯定不是这次“比帅大会”的冠军了,所以我们把他踢出队列

队列变成

编号 姓名 身高 颜值
2 gjm 1.1m 0 0 0

后来又来了一个ygl,ygl身高1.7m,颜值是 − 100 -100 −100

虽然ygl颜值比gjm要低,但是他比gjm高啊,海拔也可以体现帅,所以gjm仍然有希望,我们把ygl加入队列

编号 姓名 身高 颜值
2 gjm 1.1m 0 0 0
3 ygl 1.7m − 100 -100 −100

最后来了一个ljr,ljr身高一米九,帅度 + ∞ +\infty +∞

这样他轻松吊打了[吊打了(吊打了集训队的xyc)的gjm],成为了这次比赛的冠军,gjm和ygl只能被踢出,因为他们身高和颜值都没有ljr高

编号 姓名 身高 颜值
4 ljr 1.9m + ∞ +\infty +∞

经过这个例子我们就知道了单调队列的思想,有两个参数 a i a_i ai​和 b i b_i b

【二分栈优化dp】图解二分栈优化dp 文章目录原理什么是二分栈图解什么时候使用二分栈时间复杂度二分栈优劣例题[BZOJ1010][HNOI2008]玩具装箱题目大意输入输出样例限制分析二分栈代码CSP-S 2019 Day2T2 划分(88pts)题目大意分析 原理 什么是二分栈 个人理解的二分栈,应该是一种类似刷表法的算法,对于每个点i,先更新自己的答案,再弹掉所有转移不如i的区间,最后在后面的 [i+1,n][i+1,n][i+1... 阅读详情

相关推荐

告别‘报错马拉松’:一份保姆级的Ubuntu 20.04编译OpenWrt 15.05环境配置与问题修复清单

本文提供了一份详细的Ubuntu 20.04编译OpenWrt 15.05的环境配置与问题修复指南,帮助开发者告别‘报错马拉松’。从基础环境搭建到典型报错分类与修复方案,再到高阶问题的深度修复,全面覆盖编译过程中可能遇到的各类问题,并提供自动化补丁脚本和Docker环境固化方案,确保编译过程高效顺畅。

weixin_33230433的博客 292

Proxmox VE网络配置踩坑实录:从Web界面无法访问到完美修复的全过程

本文详细记录了Proxmox VE服务器Web界面无法访问的完整排查与修复过程。作者从基础网络连通性测试入手,逐步排查了服务状态、SSL证书、端口监听、防火墙规则及网关配置,最终定位并解决了问题。文章提供了系统性的故障排查思路和实用的修复命令,对管理Proxmox VE网络具有重要参考价值。

weixin_29231221的博客 888

PCIe中ACS知识小记

虚拟机内部的访问数据显而易见是带的GPA地址。而目前几乎所有的PCIe 设备都带ACS control,所以它们可以单独assign给不同的VM,但是随之而来的就是即使两个GPU同时assign给同一个VM,由于ACS的存在,他们之间也不会有真正的物理层面的P2P访问。每一个TLP都自带一个address(寻址类TLP),同时每一个endpoint,PCIe switch都自带一段BIOS配置的地址空间范围,一旦这个TLP的address落入某个设备的地址范围,那么这个TLP就属于这个设备并消费。

Summer的博客 5077

YOLO11-Seg优化:注意力魔改 | 具有切片操作的SimAM注意力,魔改SimAM

问题点:SimAM计算整张特征图的像素差平均值时加权可能会忽略小目标的重要性,同时与整体平均值相比可能和背景信息相似,导致加权增强较弱;

会AI的学姐 457

OpenCV实例(二)手势识别

手势识别的范围很广泛,在不同场景下,有不同类型的手势需要识别,例如:● 识别手势所表示的数值。● 识别手势在特定游戏中的含义,如“石头、剪刀、布”等。● 识别手势在游戏中表示的动作,如前进、跳跃、后退等。● 识别特定手势的含义,如表示“OK”的手势、表示胜利的手势等。理论基础凸包和凸缺陷在图像处理中具有非常重要的意义,被广泛地用于图像识别等领域。逼近多边形是轮廓的高度近似,但是有时候,我们希望使用一个多边形的凸包来简化它。凸包和逼近多边形很像,只不过凸包是物体最外层的凸多边形。

小幽余生不加糖 9409

信奥赛C++提高组csp-s之数论基础专题课:从同余到分数模运算1(知识地图:同余、裴蜀定理、扩展欧几里得、乘法逆元、分数模运算)

信奥赛C++提高组csp-s之数论基础专题课:从同余到分数模运算1(知识地图:同余、裴蜀定理、扩展欧几里得、乘法逆元、分数模运算)

王老师青少年编程 790

ardupilot BMI088加速度陀螺仪学习

本节主要记录ardupilot 中BMI088传感器的学习过程,欢迎批评指正。BMI088是一款高性能6轴惯性传感器,由16位数字三轴±24g加速度计和16位数字三轴±2000°/ s陀螺仪组成。 BMI088允许高精度测量方向和沿三个正交轴的运动检测。BMI088具有高振动鲁棒性和3 x 4.5 x0.95mm³的小尺寸,是用于无人机和机器人应用等恶劣环境的高性能IMU中的独特产品。 BMI088专门设计用于有效抑制由于PCB上的共振或整个系统的结构而可能发生的振动。 除了高振动稳定性外,BMI088的出

陌城烟雨 2053

手把手教你学基于 Linux 的 NPU 固件开发-第 10 讲:可靠性设计(RAS)——让系统坚如磐石错误检测、纠正与上报机制(ECC、Parity)

组件推荐保护机制备注HBM/DDRScrubbing必须开启,定期巡检片上 SRAMECC(权重/激活值),Parity(指令)权衡面积与可靠性计算单元ABFT或DMR(关键路径)防止计算逻辑错误片上网络CRC重传保证数据传输完整性系统软件AER 上报CE 监控自动恢复闭环管理,杜绝 SDC运维策略预测性维护Checkpoint变被动为主动核心心法(信任硬件,但必须验证。在纳米尺度下,错误是必然发生的物理现象。

MHD0815的博客 90

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

jre9下载 jdk9

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

上一篇: 基础算法:基数排序
下一篇: AtCoder ABC142
NephrenRuqInsania
博客等级 码龄8年 20粉丝 115原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值