当前位置: 首页 > news >正文

算法题(183):质量检测

审题:

本题需要我们求出Q序列并逐行打印

思路:
首先我们需要知道Qm是什么意思:

根据题意,m是题目给定的值,而Qm表示一段索引1~m的区间的质量最差值,Qm+1表示索引2~m+1的区间

综上所述,其实题目就是要我们求每段长度为m的区间的最差质量值并输出

方法一:滑动窗口

我们可以利用双端队列来解决滑动窗口的求最值题目

解题:

#include<iostream>
#include<deque>
using namespace std;
const int N = 1e5 + 10;
int a[N];
int n, m;
int main()
{cin >> n >> m;for (int i = 1; i <= n; i++){cin >> a[i];}//查找最差质量deque<int> q;//存下标for (int i = 1; i <= n; i++){while (q.size() && a[q.back()] >= a[i]) q.pop_back();q.push_back(i);if (q.back() - q.front() + 1 > m) q.pop_front();if (i >= m) cout << a[q.front()] << endl;}return 0;
}

注意:

1.队列存储的是下标

2.使用队列相关接口的时候需要先判断队列是否为空

3.要利用存储的下标来判断最前面出现的产品是否还在窗口中

4.最终输出的是产品的质量值,所以要根据队列中存储的索引映射回a数组输出

P2251 质量检测 - 洛谷

http://www.dtcms.com/a/323394.html

相关文章:

  • 《答客难》东方朔
  • 网络原理-初识
  • FreeRTOS入门知识(初识RTOS任务调度)(三)
  • AVL树的四种旋转
  • 【Python 语法糖小火锅 · 第 4 涮】
  • 资深全栈工程师面试题总结
  • 【牛客刷题】小红的区间删除
  • 第16届蓝桥杯Scratch选拔赛初级及中级(STEMA)2024年11月24日真题
  • Linux之shell脚本篇(四)
  • SQL 172 未完成试卷数大于1的有效用户
  • 9. 堆和栈有什么区别
  • 01数据结构-图的邻接矩阵和遍历
  • 从零开始理解编译原理:设计一个简单的编程语言
  • svg 图片怎么设置 :hover 时变色
  • 交 换
  • sigaction 中 sa_handler = SIG_IGN 的深度解析与应用实践
  • day14 - html5
  • 2025年TOP5服装类跟单软件推荐榜单
  • 复杂正则语句(表格数据)解析
  • CentOS7运行AppImage
  • 历史数据分析——首旅酒店
  • 电子电气架构 --- 48V车载供电架构
  • ubuntu修改密码
  • 基于dynamic的Druid 与 HikariCP 连接池集成配置区别
  • 论文阅读 2025-8-3 [FaceXformer, RadGPT , Uni-CoT]
  • 数论——约数之和、快速乘
  • 新手入门:Git 初次配置与 Gitee 仓库操作全指南 —— 从环境搭建到代码推送一步到位
  • 【unitrix数间混合计算】2.9 小数部分特征(t_non_zero_bin_frac.rs)
  • Java基础-完成局域网内沟通软件的开发
  • day 16 stm32 IIC