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

题解:AtCoder AT_awc0001_e Temperature Fluctuation Range

本文分享的必刷题目是从蓝桥云课洛谷AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。

欢迎大家订阅我的专栏:算法题解:C++与Python实现!

附上汇总贴:算法竞赛备考冲刺必刷题(C++) | 汇总


【题目来源】

AtCoder:E - Temperature Fluctuation Range

【题目描述】

Takahashi is analyzing weather data. There is a record of temperature observations taken overN NNconsecutive days in a certain region, where the temperature on dayi iiwasH i H_iHidegrees.
高桥正在分析天气数据。某个地区记录了连续N NN天的气温观测值,其中第i ii天的气温为H i H_iHi度。

Takahashi wants to select a consecutive period ofK KKdays from this observation data and investigate the temperature variation range during that period.
高桥希望从这些观测数据中选取连续K KK天的时间段,并研究该时间段内的气温变化范围。

Here, the “temperature variation range” for a consecutive period ofK KKdays is defined as the difference between the maximum temperature and the minimum temperature during that period.
此处,连续K KK天时间段的"气温变化范围"定义为该时间段内最高气温与最低气温的差值。

Takahashi wants to find a consecutive period ofK KKdays that maximizes the temperature variation range. Find the maximum value of the temperature variation range.
高桥希望找到一个连续K KK天的时间段,使得气温变化范围最大。求气温变化范围的最大值。

【输入】

N NNK KK

H 1 H 2 … H N H_1\ H_2\ \dots\ H_NH1H2HN

  • The first line containsN NN, representing the number of observation days, andK KK, representing the number of consecutive days to select, separated by a space.
  • The second line containsH 1 , H 2 , … , H N H_1,H_2,…,H_NH1,H2,,HN, representing the temperature on each day, separated by spaces.

【输出】

Output the maximum value of the temperature variation range in one line.

【输入样例】

5 3 2 5 1 8 4

【输出样例】

7

【解题思路】

【算法标签】

#单调队列#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=200005;intn,k;// n: 数组长度,k: 滑动窗口大小inta[N];// 原始数组intans=-2e18;// 存储最大差值,初始化为极小值structNode{intv,idx;// v: 数值,idx: 索引};deque<Node>minq,maxq;// 双端队列:minq维护窗口最小值,maxq维护窗口最大值signedmain(){cin>>n>>k;// 读入数组长度和窗口大小for(inti=1;i<=n;i++){cin>>a[i];// 读入数组元素}for(inti=1;i<=n;i++)// 遍历数组{// 维护minq队列:移除窗口外的元素while(!minq.empty()&&minq.front().idx<=i-k){minq.pop_front();}// 维护maxq队列:移除窗口外的元素while(!maxq.empty()&&maxq.front().idx<=i-k){maxq.pop_front();}// 维护minq队列:保持队列单调递增while(!minq.empty()&&minq.back().v>=a[i]){minq.pop_back();}// 维护maxq队列:保持队列单调递减while(!maxq.empty()&&maxq.back().v<=a[i]){maxq.pop_back();}// 将当前元素加入两个队列minq.push_back({a[i],i});maxq.push_back({a[i],i});// 当窗口大小达到k时,计算当前窗口的最大差值if(i>=k){ans=max(ans,maxq.front().v-minq.front().v);}}cout<<ans<<endl;// 输出结果return0;}

【运行结果】

5 3 2 5 1 8 4 7
http://www.jsqmd.com/news/689178/

相关文章:

  • NHSE:动物森友会存档编辑工具全面指南
  • 从UE到核心网:一文拆解Logged MDT与Immediate MDT在4G/5G中的完整数据流与避坑指南
  • 揭秘论文优化新利器:书匠策AI,让降重与去AIGC痕迹变得如此简单!
  • 2026年北京保洁公司口碑推荐:北京开荒保洁、北京厂房保洁、北京保洁清洗、北京外墙清洗、北京地毯清洗空调清洗公司口碑选择指南 - 海棠依旧大
  • 如何5分钟完成视频字幕提取:Video-subtitle-extractor终极指南
  • 如何高效使用MarkDownload:专业网页剪辑与Markdown转换终极指南
  • 题解:AtCoder AT_awc0002_a Organizing the Bookshelf
  • Qwen3.5-27B多场景落地:跨境电商商品图识别、短视频封面图文分析
  • AI投毒情报预警 | Xinference国产推理框架遭受供应链窃密后门投毒
  • C语言简单笔记
  • 英特尔发布至强600系列工作站处理器与锐炫Pro B70 GPU,双芯联动重塑AI工作站格局
  • 从零到一:Tomcat深度实战 - 适合系列教程
  • IPSAS(国际公共部门会计准则)和法国的PCG(会计总方案)在收入确认上的核心区别,源于它们所遵循的根本会计模型和适用对象的不同
  • 豆包 linux-6.19/tools/accounting/delaytop.c 源码分析
  • SUMO新手避坑指南:从零配置你的第一个仿真(含test.rou.xml和sumocfg文件详解)
  • from和inpu的用法介绍(Mac实操版)
  • ABAP批量导入Excel数据实战:从文件选择到数据库插入的完整流程
  • 解锁学术新秘籍:书匠策AI——期刊论文写作的“全能魔法棒”
  • **发散创新:基于Python与Redis的混合增强型权限控制系统实战**在现代分布式系统中,权限管理早已不是简单的角色-资源映射
  • 茉莉花插件完整指南:让Zotero中文文献管理效率飙升的终极解决方案
  • Java基本语法学习
  • 从数月到分钟级:360智能体自动挖洞终结人工低效时代
  • 基于python的在线教育课程管理系统 带协同过滤推荐算法
  • SQL注入靶场23-37关实战通关攻略
  • 2026年最火的工程范式:Harness Engineering指南与应用
  • Elasticsearch分布式原理:集群数据分布机制与分片路由全流程深度剖析
  • 北京良友伟业搬家|同城/异地/日式搬家全场景服务及靠谱公司推 - 海棠依旧大
  • 5个关键问题:如何用Klipper固件解决3D打印精度与性能难题
  • 2026帮孩子选辅导班前,实测6款学习APP的真实体验 - 品牌测评鉴赏家
  • 从FHSS到OFDMA:Wi-Fi协议演进中的核心技术变革