P1918 保龄球 (简单二分)

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

DL 算缘分算得很烦闷,所以常常到体育馆去打保龄球解闷。因为他保龄球已经打了几十年了,所以技术上不成问题,于是他就想玩点新花招。

DL 的视力真的很不错,竟然能够数清楚在他前方十米左右每个位置的瓶子的数量。他突然发现这是一个炫耀自己好视力的借口——他看清远方瓶子的个数后从某个位置发球,这样就能打倒一定数量的瓶子。
1    OOO
2    OOOO
3    O
4    OO
如上图,每个“O”代表一个瓶子。如果 DL 想要打倒 3 个瓶子就在 1 位置发球,想要打倒 4 个瓶子就在 2 位置发球。
现在他想要打倒 m 个瓶子。他告诉你每个位置的瓶子数,请你给他一个发球位置。
 输入输出格式 Input/output
输入格式:
输入文件名为 bowling.in。
第一行包含一个正整数 n,表示位置数。
第二行包含 n 个正整数,第 i 个数。表示第 i 个位置的瓶子数,保证各个位置的瓶子数不同。
第三行包含一个正整数 Q,表示 DL 发球的次数。
第四行至文件末尾,每行包含一个正整数 m,表示 DL 需要打倒 m 个瓶子。
输出格式:
输出文件名为 bowling.out。
共 Q 行。每行包含一个整数,第 i 行的整数表示 DL 第 i 次的发球位置。若无解,则输出 0。

题目链接:http://www.luogu.org/problem/show?pid=1918#

解题思路:数据太大不能哈希,就排序后二分查找。

代码如下:

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=100000+10; 
struct node
{
	int x,num;
}nd[maxn];
int cmp(node a,node b)
{
	return a.num<b.num;
}
int main(void)
{
	int n,q;
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		nd[i].x=i;
		scanf("%d",&nd[i].num);
	}
	sort(nd,nd+n+1,cmp);
	scanf("%d",&q);
	for(int i=0;i<q;i++)
	{
		int cur,ans=0;
		scanf("%d",&cur);
		int lw=1,hg=n,mid;
		while(lw<=hg)
		{
			mid=(lw+hg)/2;
			if(nd[mid].num==cur)
			{
				ans=nd[mid].x;
				break;
			}
			else if(nd[mid].num<cur)
				lw=mid+1;
			else
				hg=mid-1;
		}
		if(ans)
			printf("%d\n",ans);
		else
			printf("%d\n",ans );
	}
}


【题解-洛谷】P1918 保龄球 DL 的视力真的很不错,竟然能够数清楚在他前方十米左右每个位置的瓶子的数量。他突然发现这是一个炫耀自己好视力的借口——他看清远方瓶子的个数后从某个位置发球,这样就能打倒一定数量的瓶子。DL 算缘分算得很烦闷,所以常常到体育馆去打保龄球解闷。因为他保龄球已经打了几十年了,所以技术上不成问题,于是他就想玩点新花招。他告诉你每个位置的瓶子数,请你给他一个发球位置。个位置的瓶子数,保证各个位置的瓶子数不同。第四行至文件末尾,每行包含一个正整数。每行包含一个整数,第。,表示 DL 发球的次数。第三行包含一个正整数。 阅读详情

相关推荐

题解 P1918【 保龄球 】python和C++

#include<map> #include<iostream> using namespace std; map<int,int>ma; int n,a,q,m; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a; ma[a]=i; } cin>>q; for(int i=1;i<=q;i++){

NJU phd 在读。 1118

c++ 保龄球

DL的视力真的很不错,竟然能够数清楚在他前方十米左右每个位置的瓶子的数量。他突然发现这是一个炫耀自己好视力的借口——他看清远方瓶子的个数后从某个位置发球,这样就能打倒一定数量的瓶子。如果DL想要打倒3个瓶子就在1位置发球,想要打倒4个瓶子就在2位置发球。表示第i个位置的瓶子数,保证各个位置的瓶子数不同。每行包含一个整数,第i行的整数表示DL第i次的发球位置。他告诉你每个位置的瓶子数,请你给他一个发球位置。第四行至文件末尾,每行包含一个正整数m,表示DL需要打倒m个瓶子。第一行包含一个正整数n,表示位置数。

浪子回头 629

DeepSeek+Coze扣子搭建智能体(保姆级教程)

DeepSeek+Coze扣子搭建智能体(保姆级教程)

yizhen91y的博客 1万+

P1918 保龄球

`map`

原原的博客 354

中国裁判文书网案例批量爬取

本文介绍了某法院网站数据采集的技术研究过程,主要包含JS逆向分析和数据解密方法。通过开发者工具分析发现页面数据经过加密处理,重点研究了ciphertext等加密参数的生成逻辑。文章详细记录了定位加密函数、扣取加密代码、解密数据处理的全流程,并验证了解密方法的有效性。研究过程中强调了技术使用的法律边界,明确声明仅用于合法技术研究,禁止任何非法数据爬取行为。最终实现了加密数据的成功解密,并解释了各请求参数的作用,为后续数据清洗和存储奠定了基础。

2303_80825459的博客 812

华为OD新系统机试真题-勇攀数字高峰(Java/Py/C/C++/Js/Go)

新系统 华为OD机试新系统【勇登数字高峰】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD新系统机试真题【勇登数字高峰】

qq_45776114的博客 1544

P1918保龄球

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

zth413021的博客 994

手把手教你学 NPU 驱动开发--第一部分:基础准备 开发环境搭建:Linux 内核编译与 NPU 仿真平台配置

摘要:本文详细介绍了搭建Linux内核编译与NPU仿真平台的完整流程。主要内容包括:1) 准备ARM64交叉编译工具链;2) 编译支持KGDB调试的Linux内核;3) 构建最小根文件系统;4) 使用QEMU模拟自定义NPU设备;5) 配置KGDB调试环境。文章重点讲解了如何通过修改设备树添加虚拟NPU设备,并提供了开源NPUIP Gemmini作为实验对象。最后展示了简单的"Hello NPU"驱动验证方法,为后续NPU驱动开发奠定了基础。文中还附有常用命令速查表,方便开发者快速搭建调

MHD0815的博客 382

洛谷 P1918 保龄球

在此处思考一个问题,若我们使用循环来遍历结构体数组来寻找目标值,那么该动作的时间复杂度为O(n),当数据量极大时,我们寻找一次的时间就可能超过限定时间了。他突然发现这是一个炫耀自己好视力的借口——他看清远方瓶子的个数后从某个位置发球,这样就能打倒一定数量的瓶子。接着我们按照题意,首先使用整形变量n来接收有多少行,接着循环n次将行数与瓶子数量存入结构体数组arr(我的ac代码中使用vector,因为n只有最小值并且最大值不确定)。​ ,表示第 i 个位置的瓶子数,保证各个位置的瓶子数不同。

2301_80097874的博客 807

关于 ABAP OPEN SQL 的动态 WHERE 条件和 Dynamic Selections

ABAP动态查询技术解析 本文介绍了ABAP中实现灵活数据库查询的动态选择技术,通过FREE_SELECTIONS函数组实现用户自定义查询条件。核心内容包括: 传统固定WHERE条件的局限性,无法满足业务多变需求 Dynamic Selections机制的工作原理,使用FREE_SELECTIONS_INIT初始化、FREE_SELECTIONS_DIALOG交互 完整Demo程序演示如何构建通用表数据浏览器: 用户输入表名后校验权限 调用动态选择函数生成条件 动态拼接WHERE子句执行查询 使用CL_SA

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 672

扣子Coze工作流教程:采集公众号爆文,一键仿写自动发布

通过本教程,你学会了如何利用扣子(Coze)平台构建一个完整的公众号文章自动处理工作流。这个系统不仅能够大幅提升内容产出效率,还能通过AI二创保持内容新鲜度和原创性。最佳实践建议:初次使用时,建议先保存为草稿而不是直接发布,以便人工审核;从简单的工作流开始,逐步增加复杂度;定期检查工作流运行日志,优化节点配置。自动化内容创作是新媒体运营的未来趋势,掌握这项技能将使你在数字内容领域占据显著优势。

互联网架构师笔记 1232

【C++ 真题】P1918 保龄球

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

Ω 743

华为OD机试E卷 -猜字谜(Java & Python& JS & C++ & C )

小王设计了一个简单的猜字谜游戏,游戏的谜面是一个错误的单词,比如nesw,玩家需要猜出谜底库中正确的单词。猜中的要求如下:请你写一个程序帮忙在谜底库中找到正确的谜底。谜面是多个单词,都需要找到对应的谜底,如果找不到的话,返回”not found”

算法大师! 3487

信奥赛-刷题笔记-二分篇-T2-P1918保龄球0529

基于暴力二分与哈希表完成保龄球的题

IT从业者的成长历程 1143

【毕设全程指导】基于YOLOv8的包装商品检测与可视化系统(SKU110K实战)

本文介绍了一个基于YOLOv8的包装商品检测与可视化系统毕业设计方案。项目采用SKU110K数据集,通过CSV转TXT格式转换适配YOLO模型训练,包含详细的环境搭建、模型配置和训练流程。系统实现了包装商品的自动化检测,并开发了Tkinter可视化界面进行交互式检测展示。该方案结合产业应用需求与技术深度,既具备实用价值,又能充分展示学生的技术能力,适合作为计算机视觉相关专业的毕业设计选题。整个项目从数据准备到界面开发完整覆盖,帮助学生系统掌握目标检测项目的完整实现流程。

LXY_LOVE36的博客 145

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

洛谷P1918保龄球

这个题目有两种解法,一直是调用map库来开一个map,第二种方法是创建一个结构体,然后先排序再进行二分查找。 这里先说代码二:先复习一下二分查找: int bsearchWithoutRecursion(node c[],int low,int high,int target) { while(low<=high) { int mid=low+(high-low)/2;/*使用(low+high)/2会有整数溢出的问题 (问

jackson2248的博客 523

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

洛谷 P1918 保龄球 题解

洛谷 P1918 保龄球 题解

Sigma_Cat的博客 1182

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

洛谷P1918 保龄球

int n,q,a;i>x;cin>>q;return 0;

David_shenghuo的博客 1091

P1918 保龄球【map】

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

海岛Blog 1044

洛谷:保龄球(P1918,二分查找)

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

速溶咖啡味道很中意丶的博客 558

P1918 保龄球 洛谷

https://www.luogu.org/problem/show?pid=1918 题目描述 DL 算缘分算得很烦闷,所以常常到体育馆去打保龄球解闷。因为他保龄球已经打了几十年了,所以技术上不成问题,于是他就想玩点新花招。 DL 的视力真的很不错,竟然能够数清楚在他前方十米左右每个位置的瓶子的数量。他突然发现这是一个炫耀自己好视力的借口——他看清远方瓶子的个数后从某个位置发球,...

agcozdwdfvds08078的博客 203

蓝桥杯备赛:Day3-P1918 保龄球

本文介绍了使用STL map解决保龄球位置查询问题的方法。题目要求在N堆保龄球中快速查询指定球数对应的位置编号。核心思路是建立从球数到位置的映射,利用map的O(logN)查找特性高效处理查询。关键点包括:反向索引映射、I/O优化使用"\n"替代endl、注意long long类型防止溢出。常见错误包括映射方向错误、输入作用域不当等。该解法时间复杂度为O((N+Q)logN),适用于10^5级别的数据规模。

Tanecious的博客 546
上一篇: P1118 数字三角形游戏
下一篇: P1616 疯狂的采药
雨狮子
博客等级 码龄12年 24粉丝 185原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值