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

题解:洛谷 AT_abc463_c [ABC463C] Tallest at the Moment

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

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

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


【题目来源】

洛谷:AT_abc463_c [ABC463C] Tallest at the Moment - 洛谷

【题目描述】

Currently, there areN NNTakahashi in a conference room. Thei ii-th( 1 ≤ i ≤ N ) (1\le i\le N)(1iN)Takahashi has a height ofH i H _ iHiand will leave the roomL i L _ iLiminutes from now. Once a Takahashi leaves the room, he never returns.

You are givenQ QQqueries, so answer them in order. For thei ii-th( 1 ≤ i ≤ Q ) (1\le i\le Q)(1iQ)query, you are given an integerT i T _ iTi, so find the maximum height among the Takahashi who are in the roomT i + 1 2 T _ i+\dfrac12Ti+21minutes from now. Under the constraints of this problem, it is guaranteed that at least one Takahashi will be in the roomT i + 1 2 T _ i+\dfrac12Ti+21minutes from now.

当前会议室里有N NN个高橋。第i ii( 1 ≤ i ≤ N ) (1\le i\le N)(1iN)高橋的身高为H i H_iHi,他将在L i L_iLi分钟后离开房间。一旦高橋离开房间,他就不会再回来。

给定Q QQ个查询,请按顺序回答。对于第i ii( 1 ≤ i ≤ Q ) (1\le i\le Q)(1iQ)查询,给定一个整数T i T_iTi,请找出T i + 1 2 T_i+\dfrac12Ti+21分钟后仍在房间里的高橋中的最大身高。在本题的约束条件下,保证T i + 1 2 T_i+\dfrac12Ti+21分钟后房间里至少还有一个高橋。

【输入】

The input is given from Standard Input in the following format:

N NN
H 1 H _ 1H1L 1 L _ 1L1
H 2 H _ 2H2L 2 L _ 2L2
⋮ \vdots
H N H _ NHNL N L _ NLN
Q QQ
T 1 T _ 1T1T 2 T _ 2T2… \ldotsT Q T _ QTQ

【输出】

OutputQ QQlines. Thei ii-th line( 1 ≤ i ≤ Q ) (1\le i\le Q)(1iQ)should contain the answer to thei ii-th query.

【输入样例】

4 31 4 26 5 3 5 15 9 4 3 4 5 6

【输出样例】

31 26 15 15

【算法标签】

#普及- #整数二分

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;constintN=300005;// 最大节点数量intn,q;// n: 高橋数量, q: 查询数量intmaxH[N];// 后缀最大值数组:maxH[i] 表示从第 i 个到第 n 个高橋中的最大身高structNode{inth,l;// h: 身高, l: 离开时间}a[N];// 存储所有高橋的信息// 按离开时间升序排序,若离开时间相同则按身高升序boolcmp(Node x,Node y){if(x.l!=y.l)returnx.l<y.l;returnx.h<y.h;}// 二分查找判断:第 mid 个高橋的离开时间是否 >= x(即 T_i+0.5 分钟后是否仍在房间)boolcheck(intx,intmid){if(a[mid].l>=x)returntrue;// 仍在房间elsereturnfalse;// 已离开}// 二分查找:找到第一个离开时间 >= x 的高橋的位置intfind(intx){intl=1,r=n;while(l<r){intmid=(l+r)/2;if(check(x,mid))r=mid;// 第 mid 个仍在房间,答案在左半部分elsel=mid+1;// 第 mid 个已离开,答案在右半部分}returnl;}intmain(){cin>>n;// 读入高橋数量for(inti=1;i<=n;i++)cin>>a[i].h>>a[i].l;// 读入每个高橋的身高和离开时间sort(a+1,a+n+1,cmp);// 按离开时间升序排序// 预处理后缀最大值:从后往前遍历,maxH[i] = max(a[i..n].h)for(inti=n;i>=1;i--)maxH[i]=max(maxH[i+1],a[i].h);cin>>q;// 读入查询数量while(q--)// 依次处理每个查询{intt;cin>>t;t=round(t+0.5);// 计算 T_i + 0.5 的整数表示(等价于向上取整)intpos=find(t);// 二分查找第一个离开时间 >= t 的位置// cout << "t pos " << t << " " << pos << endl;cout<<maxH[pos]<<endl;// 输出从 pos 开始到末尾的所有高橋中的最大身高}return0;}

【运行结果】

4 31 4 26 5 3 5 15 9 4 3 4 5 6 31 26 15 15
http://www.jsqmd.com/news/1070143/

相关文章:

  • TradingAgents-CN:重新定义AI量化交易的多智能体系统架构深度解析
  • AGC/AVC 考核不达标?多合一光伏 “四可” 精准匹配电网要求
  • windows x64位系统函数调用如何传递参数
  • 什么是 Vibe Coding:AI 时代程序员如何从“手写代码”转向“意图驱动开发”
  • 【限时解密】Adobe Firefly 4.2隐藏功能曝光:设计师用它批量生成合规商用素材,平均节省11.7小时/周
  • Python内存管理的终极奥秘:引用计数机制如何实现高效垃圾回收
  • 成都靠谱全屋智能公司大盘点
  • 【求职】找工作如何卡Bug(第四篇):人脉不是你认识谁,而是谁愿意为你背书
  • Windows系统管理革命:从繁琐操作到一键智能的四个效率跃迁
  • Nora音乐播放器:优雅开源的跨平台音乐管理终极方案
  • MarkItDown:如何用一行代码解锁20+文件格式的智能转换能力?
  • PyCryptodome完全指南:Python加密库的终极入门教程
  • 如何用last30days-skill构建数据驱动的商业决策优势
  • AI驱动防伪溯源的技术演进与行业应用
  • 全媒体广告投放的技术架构:从多平台数据打通到效果归因
  • Penpot开源设计工具:从零开始的完整入门指南
  • 如何快速上手图吧工具箱TubaWinUi3:82款硬件检测工具一键启动指南
  • 企业整体搬迁行业难点标准化方案与实操科普
  • 如何用Globe.GL打造惊艳的3D地球数据可视化:从零到一的实战指南
  • 山东大学软件学院项目实训团队博客:基于AI大模型的智能考研助手(七)
  • PDFPatcher深度解析:三大架构创新如何重塑PDF处理体验
  • CBCX:把外汇投教内容建设做到位——要点解读与提示整理
  • MoneyPrinter终极指南:使用本地AI模型自动生成YouTube短视频的完整解决方案
  • Windows系统优化实战:WinUtil一键自动化管理深度解析
  • 多知识库路由:一个入口先选库再检索
  • 从零学会LangChain调用大模型!统一接口+代码实战
  • 2026年,APP依然是用户离不开的使用工具——而ASO,决定了它能否被看见
  • Redis安装指南:单机、主从、哨兵、集群模式详解
  • ABB 控制器 4LA41100102V1.3
  • HarmonyOS ArkUI 自定义跑道布局:CustomMultiChildLayout 模式深度实践