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

蓝桥杯二分法例题--跳石头

题目简介:

解析:题目要求求出最短跳跃的最大值,属于二分法中最小值最大化一类。则在主函数中写出对应的二分算法:长度集合为0-len,mid=(L+R+1)/2,利用二分法不断缩小条件范围。

	cin>>len>>n>>m;
	for(int i=0;i<n;i++)
	{
		cin>>stone[i];
	}
	int L=0,R=len;
	int mid;//二分法找适合的最短距离的最大值 
	while(L<R)
	{
		mid=(L+R+1)/2;
		if(check(mid))
		L=mid;
		else
		R=mid-1; 
	}
	cout<<L<<endl;

关于check()函数:check函数用来条件筛选,若符合在至多移走M块岩石的情况,则返回true,说明用于比较的距离d比较小,需要拆掉的岩石少于M,要贪心继续找更大的d,这时候check返回true,主函数内左侧就要缩小至mid。反之说明用于比较的距离d太大了,需要拆掉的岩石多于M,这时候check返回false,主函数内右侧就要缩小至mid-1。

check函数:

bool check(int d)
{
	int num=0;
	int cur=0;
	for(int i=0;i<n;i++)
	{
		if(stone[i]-cur<d)
		num++;
		else
		cur=stone[i];
	}
	if(num<=m)
	return true;
	else
	return false;
	 
}

如果stone[i]-cur<d的话需要拆掉stone[i]这块岩石,i++,然后继续看第i+1块岩石需不需要拆掉,否则说明满足d的距离要求了,cur移到这块岩石。

需要注意的是这里起点和终点的岩石是固定的,无法拆除。

完整c++代码:

#include<bits/stdc++.h> 
using namespace std;
int stone[1000]={0};
	int len;
	int n,m;
bool check(int d)
{
	int num=0;
	int cur=0;
	for(int i=0;i<n;i++)
	{
		if(stone[i]-cur<d)
		num++;
		else
		cur=stone[i];
	}
	if(num<=m)
	return true;
	else
	return false;
	 
}




int main()
{

	cin>>len>>n>>m;
	for(int i=0;i<n;i++)
	{
		cin>>stone[i];
	}
	int L=0,R=len;
	int mid;//二分法找适合的最短距离的最大值 
	while(L<R)
	{
		mid=(L+R+1)/2;
		if(check(mid))
		L=mid;
		else
		R=mid-1; 
	}
	cout<<L<<endl;
	
	return 0;
}

相关文章:

  • Windows 下使用 Docker 部署 Go 应用与 Nginx 详细教程
  • 【大模型基础_毛玉仁】4.1 参数高效微调简介
  • 【区块链 + 文化版权】文创链 | FISCO BCOS 应用案例
  • AI Agent 是什么?从 Chatbot 到自动化 Agent(LangChain、AutoGPT、BabyAGI)
  • SpringMVC的搭建及配置
  • Axure项目实战:智慧城市APP(六)市民互动(动态面板、显示与隐藏)
  • Python 标准库与数据结构
  • 104.二叉树的最大深度
  • ngx_http_index_set_index
  • 【逆向】国家能源局gm2
  • 一套云HIS系统源码,系统融合HIS与EMR,基于云端部署,采用B/S架构与SaaS模式
  • Flutter项目之table页面实现
  • Rust从入门到精通之进阶篇:19.Rust 生态系统
  • 欧拉筛/线性筛素数(数论)
  • 【MySQL | 七、存储引擎是什么?】
  • 安卓应用市场认领应用-签名详细步骤
  • 工业控制PSRAM存储解决方案
  • Deepseek API+Python 测试用例一键生成与导出 V1.0.3
  • 如何入门 Postman?快速了解其功能与用途
  • 基于网启PXE服务器的批量定制系统平台
  • 陶石不语,玉见文明:临平玉架山考古博物馆明日开馆
  • 联合国:欢迎俄乌伊斯坦布尔会谈,希望实现全面停火
  • A股三大股指低收:汽车股领涨,大金融走弱,两市成交近1.1万亿元
  • 光明日报:家长孩子共同“息屏”,也要保证高质量陪伴
  • 国际能源署:全球电动汽车市场强劲增长,中国市场继续领跑
  • 赖清德为“临阵脱逃”作准备,国台办:绝不会任“台独”祸首逍遥法外