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

AtCoder Beginner Contest 463 C - Tallest at the Moment 题解

老传统了打完ABC写T3题解

solve

  • 求区间最值奥,线段树
  • LZYXT的线段树
  • 在最后给出LZYXT的ST表
  • 好的我们不使用线段树
  • H,L一定要处理的,要不然你咋算答案,考虑怎么处理
  • 发现时间递增,并且要求最大值
  • 考虑按L递增排,然后就没思路了
  • 好的我们按H递减下L递增排
  • msjing写题解的时候把上面写反了
  • 发现时间排序后单调,可以用类似单调队列优化dp的双端队列的写法从对头排除过时决策
  • 不知道单调队列优化dp也没事,本质就是扫描
  • 写!
  • 爽吃一发罚时
  • 我们发现仅仅是高桥君の数组是时间单增,每次查询Q不是,所以在线是&O(QN)$的,包炸
  • 所以我们把查询全读了,排序并离线处理,这样时间就是单调的
  • 对于输出方式不对应的问题,把每次询问是第几个存一下(pair不用写cmp,拜谢pair%%%),算出来后再把答案塞到一个数组里,遍历输出就行,实现看代码,蛮清晰的
  • 时间复杂度是\(O(nlogn)\)的,查询队列均摊\(O(1)\)(貌似吧),总\(O(Q)\),瓶颈在排序
  • msjing又把时间复杂度算错了

诶为啥O(QN)能过啊
—— msjing
记录

code

#include<bits/stdc++.h>
#define Honkai ios::sync_with_stdio(0);
#define StarRail cin.tie(0);cout.tie(0);
#define endl '\n'
using namespace std;
constexpr int maxn=3e5+10;
long long n,Q;
pair<long long,long long> q[maxn];
struct _ {long long H,L;}gq[maxn];
bool cmp(_ a,_ b) {if (a.H == b.H) return a.L<b.L;return a.H>b.H;}
long long ans[maxn];
int main()
{Honkai StarRailcin >> n;for (long long i=1;i<=n;i++) cin >> gq[i].H >> gq[i].L;sort(gq+1,gq+1+n,cmp);cin >> Q;for (long long i=1;i<=Q;i++) cin >> q[i].first,q[i].second=i;\sort(q+1,q+1+Q);long long l=1;for (long long i=1;i<=Q;i++){while (l<=n && gq[l].L<=q[i].first) l++;ans[q[i].second]=gq[l].H;}for (long long i=1;i<=Q;i++) cout << ans[i] << endl;return 0;
}

Last:ST表


#include<bits/stdc++.h>
using namespace std;
const int NUM=3e5+10;
#define lid (id<<1)
#define rid (id<<1|1)int n;
struct node{int h,l;
}A[NUM];struct ST_Table{int Log[NUM],f[NUM][20];void init(int *a,int n){Log[1]=0;for(int i=2;i<=n;++i) Log[i]=Log[i>>1]+1;for(int i=1;i<=n;++i) f[i][0]=a[i];for(int j=1;j<=Log[n];++j){for(int i=1;i<=n-(1<<j)+1;i++){f[i][j]=max(f[i][j-1],f[i+(1<<(j-1))][j-1]);}}}int Max(int x,int y){int l=Log[y-x+1];return max(f[x][l],f[y-(1<<l)+1][l]);} 
}st;int B[NUM],H[NUM];int main(){cin>>n;for(int i=1;i<=n;++i){cin>>A[i].h>>A[i].l;}sort(A+1,A+1+n,[](node a,node b){return a.l<b.l;});for(int i=1;i<=n;++i){H[i]=A[i].h,B[i]=A[i].l;}st.init(H,n);int q;cin>>q;for(int i=1,x;i<=q;++i){cin>>x;x=upper_bound(B+1,B+1+n,x)-B;cout<<st.Max(x,n)<<'\n';}return 0;
}
http://www.jsqmd.com/news/1051028/

相关文章:

  • 3分钟掌握AI图像增强:Real-ESRGAN-GUI让模糊照片重获新生
  • 2026年英国留学找哪个机构好:五家优选品牌深度解析 - 科技焦点
  • 基于YOLOv8的实时目标检测系统 AI图像分割 目标跟踪 视频识别
  • 如何在3分钟内免费体验完整三国杀游戏:无名杀网页版终极指南
  • 2026年服务好英国留学热门机构推荐:五家优选深度解析 - 科技焦点
  • security第十六集 引入JWT
  • 语法入门坑:Java 首行报错、大小写报错、符号不匹配新手全解
  • STM32F407 寄存器编程点亮 LED—— 从零搭建纯裸机工程
  • Adobe-GenP 3.0终极激活指南:5分钟解锁Adobe全系列软件的专业解决方案
  • 2026年高考排名2000-3000区间,国内AI人工智能专业中南大学适配性深度分析 - 温茶叙旧
  • 纠结智己LS6和问界M7,两款车选哪款车更值得买?2026中大型SUV对比参考 - 外贸老黄
  • DeepSeek-R1 v2 GRPO实战解析:LLM强化学习全链路工程指南
  • 宁国徽菜深度测评:皖南川藏线东入口哪家最正宗?本地人实测30天结论 - 资讯速览
  • 想搞定长沙全屋定制?这家专业团队千万别错过! - 资讯速览
  • 抖音视频批量下载终极指南:5分钟快速上手高效工具
  • 嵌入式GUI开发实战:emWin初始化配置与硬件加速优化详解
  • 抖店抖掌柜AI商品违规、标题违规、图片违规检测功能好用吗? - 抖掌柜
  • 2026.6.18总结
  • 合肥高科经济技工学校 2026 秋季招生正式开启,职教高考班详情一览 - 教育为先
  • Cpp2IL逆向工具:解锁Unity IL2CPP代码的5大核心功能
  • Segearth-R2-06
  • 长沙全屋定制工艺揭秘!高性价比背后究竟藏着什么秘诀? - 资讯速览
  • 2026上海风貌别墅装修7大品牌推荐榜:从设计还原到落地交付的全景解析 - 资讯速览
  • Adapter Framework 架构深读,SAP PI 连接外部世界的 Java 中枢
  • 玩转腾讯元宝复制表格,AI 导出鸭打造一站式导出方案
  • Python+Selenium实战:构建端到端业务压力测试框架
  • 2026年服务口碑好英国留学机构:五家优选深度解析 - 科技焦点
  • 解决重装系统后加密文件夹提示“读取加密信息发生异常”的问题(附步骤)
  • 抖音小店商品总被判违规?如何利用商品管理进行高效的违规检测? - 抖掌柜
  • 2026年6月精密压电喷胶阀生产企业推荐,高精度喷胶,满足精细作业需求 - 品牌推荐师