第一周 题目练习(queue)洛谷P1886 P1714 P2058

发布时间:2026/7/23 12:30:32

第一周 题目练习(queue)洛谷P1886 P1714 P2058
涉及 队列 单调队列 滑动窗口 单调队列队尾进队出队 队头 出队 前提单调 (快速获取最大值最小值) 滑动窗口维护一段连续区间 定长 区间长固定 不定长 区间长度动态变化P1886 【模板】单调队列 / 滑动窗口涉及单调队列滑动窗口定区间解题过程其实这个模板题是第二次看了 但是还是刚看到题目 之后 还是蛮模糊的平时看到数组内求什么最大值 最小值都是暴力直接循环for(intl1;lk-1n;l){intminvINT_MAX;for(intil;ilk-1;i)minvmin(minv,a[i]);coutminv ;}像这样直接去遍历无疑 肯定是会超限的 那么就应该需要去优化了 也就是 滑动窗口 去维护一段区间 再借助单调队列 去维护区间内的最值for(ll i1;in;i){while(hta[q[t]]a[i]){t--;}q[t]i;while(q[h]i-k1){h;}if(ik){couta[q[h]] ;}}在维护区间最小值时 维护队列内下标对应的数值 单调递增核心1.去队尾维护单调性在向队列内加入新元素时如果队尾元素对应的数值 新加入的下标对应的数值 说明队尾旧元素不可能成为后续窗口最小值直接弹出队尾直到队尾数值新加入的数值即新加入的数值永远不可能成为最小值再把i入队2.队头剔除越界元素若队头下标不在当前窗口范围 i-k1队头下标i就从队头弹出此时队头就是当前窗口最小值的下标。代码实现#includebits/stdc.h #define ll long long #define endl \n #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); #define ull unsigned long long #define fi first #define se second using namespace std; int main() { IOS ll k,n; ll h,t; cinnk; vectorlla(n5); vectorllq(n5); for(int i1;in;i) { cina[i]; } h1;t0; for(ll i1;in;i) { while(hta[q[t]]a[i]) { t--; } q[t]i; while(q[h]i-k1) { h; } if(ik) { couta[q[h]] ; } } coutendl; h1;t0; for(ll i1;in;i) { while(hta[q[t]]a[i]) { t--; } q[t]i; while(q[h]i-k1) { h; } if(ik) { couta[q[h]] ; } } // coutfixedsetprecision(x) ; return 0; }[P2058 NOIP 2016 普及组] 海港 - 洛谷# P2058 [NOIP 2016 普及组] 海港涉及点 滑动窗口普通队列解题过程已经知道t是严格升序 题目给出船只到达时间 t 单调递增采用滑动窗口 普通队列实现队列queue先进先出 将t 与 国籍x捆绑到一起(利用结构体)q.push({t,x});先用 cnt 记录当前窗口内国籍 x 的乘客数量kind 存窗口内不同国籍总数若入队前 cnt[x]0说明是新增国籍kind 执行 cnt[x]然后入队完成后 通过一个while循环去清理过期乘客 ti - 86400 tp ti利用滑动窗口去查 while(!q.empty()q.front().tt-N)若队首乘客满足 q.front().t ≤ t - 86400 表示超出 24 小时窗口 取出队首国籍 xx cnt[xx]–若 cnt[xx]0窗口内不存在该国籍kind-- 弹出队首代码实现//P2058 #includebits/stdc.h #define ll long long #define endl \n #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); #define ull unsigned long long #define fi first #define se second using namespace std; const int N86400; const int M1e55; struct ship{ ll t; ll x; }; ll cnt[M]; int main() { IOS ll n; cinn; queueshipq; ll kind0; for(ll i1;in;i) { ll t,x; ll k; cintk; for(ll j1;jk;j) { cinx; q.push({t,x}); if(!cnt[x]) { kind; } cnt[x]; } while(!q.empty()q.front().tt-N) { ll xxq.front().x; cnt[xx]--; if(!cnt[xx])kind--; q.pop(); } coutkindendl; } // coutfixedsetprecision(x) ; return 0; }P1714 切蛋糕 - 洛谷P1714 切蛋糕涉及 前缀和 单调队列 滑动窗口最值不定长区间解题过程由题目可以看出是 找最大区间和6 31 -2 3 -4 5 -6 a[i]1 -1 2 -2 3 -3 sum[i]起点i为4时(1km)1 -2 3 (-4) 5 -6 a[i]k1 结果为sum[i]-sum[i-1]-41 -2 (3 -4) 5 -6 a[i]k2 结果为sum[i]-sum[i-2]-11 (-2 3 -4) 5 -6 a[i]k3 结果为sum[i]-sum[i-3]-3…km 结果为sum[i]-sum[i-m]sum[R]-sum[L-1] 区间长度为 1R-L1msum[i]-sum[l] 假定lL-1 1i-lm即区间范围 i-mli-1ansmax(sum[i]-sum[l]) (i-mli-1)等价于anssum[i]-min(sum[l]) 暴力 解题范围太大超限写过上面两道题之后 可以说 找最值 肯定还是单调队列滑动窗口最快了找最大值 -单调队列滑动窗口-用一个queue去存下标代码实现//P1714 #includebits/stdc.h #define ll long long #define endl \n #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); #define ull unsigned long long #define fi first #define se second using namespace std; ll ans-233333333; int main() { IOS ll n,m; cinnm; vectorllp(n3); vectorllsum(n10); dequellq; for(ll i1;in;i) { cinp[i]; sum[i]sum[i-1]p[i]; } q.push_back(0);// 初始放入下标0sum[0]0作为起点 for(ll i1;in;i) {//移除队头 下标超出i-m范围长度超过m while(q.front()mi) // while (!(li-m)) { q.pop_front(); } //sum[i] - 最小sum[q.front()] ansmax(ans,sum[i]-sum[q.front()]); //维护单调递增队列队尾前缀和 当前sum[i]就弹出 找最小值 while(!q.empty()sum[q.back()]sum[i]) { q.pop_back(); } q.push_back(i); } coutansendl; // coutfixedsetprecision(x) ; return 0; }

相关新闻

工业以太网PHY芯片TLK111硬件设计与软件配置全解析

工业以太网PHY芯片TLK111硬件设计与软件配置全解析

2026/7/23 12:30:32

1. 项目概述与核心价值在工业自动化、电机控制和各类嵌入式网络设备的设计中,以太网物理层收发器(PHY)的选择往往是决定系统通信稳定性、实时性和可靠性的基石。它不像上层协议栈那样引人注目,却实实在在地负责着数据从数字比特流…

UE5性能优化实战:用Stat命令与Unreal Insights精准定位卡顿根源

UE5性能优化实战:用Stat命令与Unreal Insights精准定位卡顿根源

2026/7/23 12:30:32

1. 项目概述:从“感觉卡”到“数据卡”的思维转变 做UE5项目,尤其是开放世界或者高画质手游,最怕的就是测试时那句“这里有点卡”。这个“卡”字背后,可能藏着渲染线程瓶颈、游戏逻辑超支、Draw Call爆炸、GPU指令排队等几十种原因…

高通FAS调度技术:提升移动设备性能与能效

高通FAS调度技术:提升移动设备性能与能效

2026/7/23 12:20:32

1. 高通处理器FAS调度技术解析最近在移动设备性能优化领域,FAS调度技术引起了广泛关注。作为一名长期从事移动设备性能调优的工程师,我发现这套调度机制在高通平台上展现出惊人的潜力——既能提升游戏帧率,又能降低日常使用功耗。不同于传统的…

角色一致性失效导致商业项目拒收率飙升47%,这6个可落地的Prompt工程+后处理Checklist你必须今天掌握

角色一致性失效导致商业项目拒收率飙升47%,这6个可落地的Prompt工程+后处理Checklist你必须今天掌握

2026/7/23 13:30:35

更多请点击: https://intelliparadigm.com 第一章:AI视频角色一致性失效的商业影响全景图 当AI生成视频中同一角色在不同镜头间出现面容漂移、服饰错位、发型突变或语音特征断裂时,表面是技术缺陷,实则是商业信任链的系统性松动。…

BQ40Z50-R4电池管理芯片温度监控与安全事件记录深度解析

BQ40Z50-R4电池管理芯片温度监控与安全事件记录深度解析

2026/7/23 13:30:35

1. 项目概述与核心价值在锂离子电池的应用中,无论是我们日常使用的笔记本电脑、电动工具,还是更大型的储能系统,其安全与寿命都维系于一个核心组件——电池管理系统。BMS就像电池的“大脑”和“守护神”,它需要实时监控电芯的电压…

豆包AI企业私有化部署避坑清单(含GPU资源预估公式+合规审计 checklist):某头部银行内部流出版

豆包AI企业私有化部署避坑清单(含GPU资源预估公式+合规审计 checklist):某头部银行内部流出版

2026/7/23 13:30:35

更多请点击: https://intelliparadigm.com 第一章:豆包AI企业私有化部署的背景与核心价值 随着生成式AI技术加速渗透至金融、政务、医疗、制造等关键行业,数据主权、合规性与业务连续性成为企业落地AI能力的首要关切。公有云API调用模式虽便…

UCD90320 GPI配置与故障响应:实现电源系统智能监控与保护

UCD90320 GPI配置与故障响应:实现电源系统智能监控与保护

2026/7/23 13:30:35

1. 项目概述:深入理解UCD90320的GPI与故障响应机制在复杂的多轨电源系统设计中,工程师们常常面临一个核心挑战:如何让电源管理芯片(PMU)不仅“听话”地执行上电时序,还能“感知”外部世界的状态并做出智能响…

Agent 上线频繁出问题?根源是 Prompt 没做拆分,ArkAPI 落地方法论请收好

Agent 上线频繁出问题?根源是 Prompt 没做拆分,ArkAPI 落地方法论请收好

2026/7/23 13:30:35

很多 Agent 项目,最早都是靠一整段系统提示词快速跑通 Demo。从角色定位、工具权限、输出规范,再到内容禁限规则,全部先塞进一段长文本里,Demo阶段确实足够便捷。可一旦推向生产环境,安全管控策略、业务专属规则、工具…

基于YOLOv8的俯卧撑动作识别系统开发实战

基于YOLOv8的俯卧撑动作识别系统开发实战

2026/7/23 13:20:34

1. 项目概述:俯卧撑动作识别系统的技术实现路径 这套俯卧撑动作识别系统本质上是一个融合了计算机视觉与Web技术的完整解决方案。核心采用YOLOv8目标检测框架,通过深度学习模型捕捉人体关键点运动轨迹,实现俯卧撑动作的自动计数功能。我在实际…

微服务进阶:服务网格与Istio

微服务进阶:服务网格与Istio

2026/7/23 3:40:08

541|微服务进阶:服务网格与Istio 上篇文章我们聊了微服务的基本概念和拆分方法。 但微服务多了,问题也多了: 服务之间怎么通信? 怎么监控每个服务的调用链路? 熔断、限流、重试怎么做? 安全认证怎么统一? 以前这些都靠SDK库(比如Hystrix、Feign),每个服务都要集成…

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

2026/7/23 4:40:05

一、零售门店全域协同业务背景与行业痛点 1.1 门店超级终端设备矩阵(连锁便利店/商超标准配置) 自助收银Kiosk一体机:顾客结算、自助核销优惠券、商品素材预览;运营折叠平板:店长后台商品上新、图片录入、活动配置、…

噗叽短视频界面分析

噗叽短视频界面分析

2026/7/23 1:54:13

1 和小红书类似,可以采用类似判断方法------------其实他比小红书好判断,因为他没有图片,控件位置几乎是固定的,都不用判断------------2 因为他没有点赞按钮------------而且几乎所有控件位置都是完全一样的,所以我就…

企业级AI搜索落地选型实战手册(含LLM+RAG+Hybrid架构对比矩阵与ROI测算模板)

企业级AI搜索落地选型实战手册(含LLM+RAG+Hybrid架构对比矩阵与ROI测算模板)

2026/7/23 0:09:56

更多请点击: https://kaifayun.com 第一章:企业级AI搜索落地选型实战手册(含LLMRAGHybrid架构对比矩阵与ROI测算模板) 企业级AI搜索系统落地成败,核心在于技术选型与业务价值的精准对齐。盲目堆砌大模型能力或过度依赖…

TM4C129LNCZAD外设实战:LCD、比较器与PWM寄存器配置详解

TM4C129LNCZAD外设实战:LCD、比较器与PWM寄存器配置详解

2026/7/23 0:09:56

1. 项目概述与核心价值在嵌入式系统开发,尤其是基于ARM Cortex-M内核的微控制器项目中,深入理解并熟练配置芯片的片上外设,是从“点亮LED”迈向“实现复杂系统功能”的关键一步。Tiva™ TM4C129LNCZAD作为TI公司Cortex-M4F家族中的高性能成员…

AtomCode `fmt_dur` 争议溯源:两个函数、三段演进、四个事实

AtomCode `fmt_dur` 争议溯源:两个函数、三段演进、四个事实

2026/7/23 0:09:56

一、快速声明与争议背景本文是对 AtomCode 终端 spinner 时长显示 fmt_dur 相关说法的事实性核验。2026 年 7 月 CSDN 上出现两篇互相矛盾的博文,近期又有 AI 在对话中输出格式描述 XhYm / YmZs / Zs。本文基于 AtomCode 仓库 main4677ddfa 及全分支 Git 历史给出可…