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

洛谷 P1918:保龄球 ← STL map

【题目来源】
https://www.luogu.com.cn/problem/P1918

【题目描述】
DL 算缘分算得很烦闷,所以常常到体育馆去打保龄球解闷。因为他保龄球已经打了几十年了,所以技术上不成问题,于是他就想玩点新花招。
DL 的视力真的很不错,竟然能够数清楚在他前方十米左右每个位置的瓶子的数量。他突然发现这是一个炫耀自己好视力的借口 --- 他看清远方瓶子的个数后从某个位置发球,这样就能打倒一定数量的瓶子。
1. ◯◯◯
2. ◯◯◯ ◯
3. ◯
4. ◯ ◯
如上图,每个 “◯” 代表一个瓶子。如果 DL 想要打倒 3 个瓶子就在 1 位置发球,想要打倒 4 个瓶子就在 2 位置发球。
现在他想要打倒 m 个瓶子。他告诉你每个位置的瓶子数,请你给他一个发球位置。

【输入格式】
第一行包含一个正整数 n,表示位置数。
第二行包含 n 个正整数 ai,表示第 i 个位置的瓶子数,保证各个位置的瓶子数不同。
第三行包含一个正整数 Q,表示 DL 发球的次数。
第四行至文件末尾,每行包含一个正整数 m,表示 DL 需要打倒 m 个瓶子。

【输出格式】
共 Q 行。每行包含一个整数,第 i 行的整数表示 DL 第 i 次的发球位置。若无解,则输出 0。

【输入样例】
5
1 2 4 3 5
2
4
7​​​​​​​

【输出样例】
3
0​​​​​​​

【数据范围】
对于 50% 的数据,1≤n,Q≤1000,1≤ai,m≤10^5。
对于 100% 的数据,1≤n,Q≤100000,1≤ai,m≤10^9。

【算法分析】
什么数据结构可以记录不连续数字的位置呢?哈希表,对应 STL 模版中的 map。
因此,定义一个 map 容器来存储各个数字的位置,对于 q 个询问,读取 map 中对应 key 值的 value。由于 map 读取元素的时间复杂度为 O(log n),因此代码的总时间复杂度为 O(nlog n),能够通过 n≤100000 的数据。
如果数据量更大,还能用 unordered_map<int> 来优化,但本题用 map 足以通过数据。

【算法代码】

#include <bits/stdc++.h>
using namespace std;map<int,int> mp;
int n,x,T;int main() {cin>>n;for(int i=1; i<=n; i++) {cin>>x;mp[x]=i;}cin>>T;while(T--) {cin>>x;cout<<mp[x]<<endl;}return 0;
}/*
in:
5
1 2 4 3 5
2
4
7out:
3
0
*/





【参考文献】
https://mp.weixin.qq.com/s/LXBViXzCA17JWEPgkgAGlA
https://www.luogu.com.cn/problem/solution/P1918





 

http://www.jsqmd.com/news/299513/

相关文章:

  • 详细介绍:C++蓝桥杯之结构体10.15
  • 抖店商品图如何保存到手机上的方法
  • 云端推理中的模型量化技术:减小体积提升速度
  • C++实现ATM状态机
  • 导师严选2026 AI论文工具TOP10:自考论文写作全攻略
  • Java毕设项目推荐-基于SpringBoot的社区公益服务管理平台 基于springboot的社区志愿者服务系统【附源码+文档,调试定制服务】
  • 【计算机毕业设计案例】基于springboot的居民志愿服务智慧系统社区志愿者服务系统(程序+文档+讲解+定制)
  • 学长亲荐8个AI论文平台,助你搞定本科毕业论文!
  • 论文《关于预防人工智能反叛的初步探讨》修订版
  • SMU 2026 ptlks的周报Week 1
  • 2025年少儿编程推荐:五家优选品牌深度全面对比解析
  • 用 CrossOver 体验“魔法世界”:在 Mac 电脑畅玩《霍格沃茨之遗》保姆级教程
  • 2025年少儿编程哪家靠谱?主流上榜五家品牌全面深度解析
  • GLM-ASR-Nano-2512:中文方言识别与低音量语音处理的最佳开源方案
  • 2026年AI智能体替代员工:从理论到实践,小白也能上手的数字员工教程
  • 从入门到精通:RAG系统中检索与生成之间的增强层,收藏级技术指南
  • 【超详细】大模型学习路线图,从入门到应用(建议收藏)
  • 如何系统化的学习金融,投资,理财?
  • 字符串相关
  • 兰亭妙微:以交互与网站设计之力,重塑行业门户新标杆
  • 兰亭妙微:以HTML前端、UI/交互/图标设计赋能数字孪生与大屏设计新标杆
  • 【第三十二周】RAG学习02
  • Lab2-system calls MIT6.1810操作系统工程【持续更新】
  • 学霸同款2026 AI论文写作软件TOP9:研究生开题报告必备测评
  • 面向 OpenHarmony 的 Flutter 应用实战:TodoList 多条件过滤系统的状态管理与性能优化
  • 无状态 Widget 下的实时排序:Flutter for OpenHarmony 中 TodoList 的排序策略与数据流控制
  • 从数据模型到响应式渲染:Flutter for OpenHarmony 上 TodoList 优先级系统的端到端类型安全实践
  • 从系统亮度监听到 UI 重绘:Flutter for OpenHarmony TodoList 深色模式的端到端响应式实现
  • 在 OpenHarmony 上打造智能 TodoList:基于 Flutter 的标签分类与动态过滤实践
  • 数字化种植牙企业