【蓝桥每日一题]-二分类型(保姆级教程 篇3) #路标设置 #跳石头

今天接着讲二分题型

目录

题目:路标设置

 思路: 

题目:跳石头

 思路: 

          

     

题目:路标设置

     

       

思路: 

   
求:放n个路标后的最小空旷指数
二分查找:对空旷指数进行二分
二分依据: 该空旷指数下放的路标数
    

#include <iostream>                      
using namespace std;
int main(){int len,n,k,a[100005],now=0,before=0,l=0,r=0;cin>>len>>n>>k;for(int i=0;i<n;i++){            //a[i]存放每段的距离,之后不需要再计算cin>>now;a[i]=now-before;before=now;if(r<a[i] )  r=a[i];       //r存放最大的a[i]}a[n]=len-before;  if(r<a[n]) r=a[n];if(k==0){                    //特判特殊情况cout<<r;	return 0;}int mid,cnt,tmp,yu;while(l<=r){mid=(l+r)/2,cnt=0,tmp;     //cnt是每个区间a[i]中放置的路标数for(int i=0;i<=n;i++){tmp=a[i];cnt+=tmp/mid;yu=tmp%mid;if(yu==0&&tmp>=mid)cnt--;
//			while(tmp>mid){            //使用除法也可以
//				cnt++;
//				tmp-=mid;
//			}}if(cnt<=k) r=mid-1;            //因为要最小空旷指数,所以用第一类二分模型else l=mid+1;                  }cout<<l;                 //见到l就是第一类二分模型(l哪里没有=):返回第一个重复的数return 0;
}

     

      

题目:跳石头

      

思路: 

    
求:搬n个石头后的最短跳跃的最大值
二分查找:对最短跳跃进行二分
二分依据:该最短跳跃下需要搬走的石头数
    

#include <iostream>                       
#define maxn 500010
using namespace std;
int d,n,m;
int a[maxn];
int l,r,mid,ans;
bool judge(int x){   //x表示当前二分出的距离情况int tot = 0;     //tot记录以当前答案需要移走的实际石头数int i = 0;       //i代表下一块石头的编号int now = 0;     //now代表人当前在什么位置while (i < n+1){ //n+1才是终点i++;if (a[i] - a[now] < x) tot++;    //把前面n个小于x距离的石头搬走else now = i;                    //前面没有可以搬走的石头,我们就跳过去,再考虑下一块对应的情况}if (tot > m)     return false;       //搬走需要次数过多,不满足题意else    return true;
}
int main(){cin>>d>>n>>m;    //d代表总长度,也就是右边界;n块石头;要移走m块(思考时候不要被这个m限制)for (int i=1;i<=n;i++)  cin>>a[i];a[n+1] = d;     //n+1是终点l = 1; r = d;while(l<=r){mid =(l+r)/2;if(judge(mid)) l=mid+1;else r=mid-1;}cout << r << endl;//输出r也可以return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/179069.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

XR Interaction ToolKit

一、简介 XR Interaction Toolkit是unity官方的XR交互工具包。 官方XRI示例地址&#xff1a;https://github.com/Unity-Technologies/XR-Interaction-Toolkit-Examples 2023.3.14官方博客&#xff0c;XRIT v2.3 https://blog.unity.com/engine-platform/whats-new-in-xr-int…

Windows Server 2008安装

1.典型 2.稍后安装操作系统 3.Microsoft Windows 4.尽量虚拟机名称也改一下&#xff0c;我忘记改了 5. 默认40G差不多了&#xff0c;不用修改了 6.直接点完成 7.配置处理器和镜像 8.中文简体 9.现在安装 10.第一个就行&#xff08;完全安装&#xff09; 11.我接受&#xff0c…

基于stm32F4的智能宠物喂食器的设计:LVGL界面、定时喂食喂水通风

宠物喂食器 一、功能设计二、元器件选型三、UI设计四、原理图设计五、源代码设计六、成品展示 实物链接&#xff1a;https://m.tb.cn/h.5iCUX6H?tkPL65WXCEipQ CZ3457 一、功能设计 1、设计一个触摸屏作为人机交互 2、通过触摸屏设置时间定时喂食喂水通风 3、获取当前水槽的…

PlantSimulation安装帮助文档端口被占用的解决办法

PlantSimulation安装帮助文档端口被占用的解决办法 从PlantSimulaiton&#xff08;TPS&#xff09;2201开始帮助文档开始使用在线&#xff0c;如果使用本地则需要安装本地文档服务器。但是在安装过程中你可能会遇到&#xff0c;5000断开被占用的情况。解决办法如下&#xff1a…

axios 实现请求 loading 效果

前景提要&#xff1a; ts 简易封装 axios&#xff0c;统一 API 实现在 config 中配置开关拦截器 loading 分为全屏 loading 和局部 loading。 axios 中设置 loading 只能设置全屏 loading&#xff0c;因为局部 loading 需要当前局部的 dom&#xff0c;在 axios 中显然拿不到发…

取消Excel打开密码的两种方法

Excel设置了打开密码&#xff0c;想要取消打开密码是由两种方法的&#xff0c;今天分享这两种方法给大家。 想要取消密码是需要直到正确密码的&#xff0c;因为只有打开文件才能进行取消密码的操作 方法一&#xff1a; 是大家常见的取消方法&#xff0c;打开excel文件之后&a…

c++装饰器模式

前言 装饰器模式&#xff0c;就是可以对一个对象无限装饰一些东西&#xff0c;而且可以没有顺序。比如一个人可能只会说出他的名字&#xff0c;但是可以让他再说哈哈&#xff0c;可以说完哈哈之后再说哇哇。如何后面又不想装饰了&#xff0c;不需要改类原来的代码&#xff0c;…

IS200EPSMG1AED 使用Lua创建逻辑脚本或完整程序

IS200EPSMG1AED 使用Lua创建逻辑脚本或完整程序 IS200EPSMG1AED 是一种支持网络的I/O控制器&#xff0c;它执行类似于可编程逻辑控制器(PLC)的控制、逻辑和监控功能。然而&#xff0c;与PLC不同&#xff0c;X-600M是为基于网络的应用而设计的。X-600M可以使用内置网络服务器和…

【256MB+256MB】起,含税低至88元!飞凌嵌入式FET113i-S全国产核心板上市

超低价、超灵活、超全能&#xff01;飞凌嵌入式FET113i-S全国产核心板正式发布&#xff01;整板采用100%国产工业级元器件&#xff0c;含税价最低仅需88元&#xff01; FET113i-S核心板基于全志T113-i工业级处理器开发设计&#xff0c;主频1.2GHz&#xff0c;配备多核多架构&a…

如何开始开发一个跑腿App系统?

1. 确定需求和功能规划 开始开发之前&#xff0c;需明确系统所需的基本功能&#xff0c;包括用户注册、登录、下单、配送员匹配、订单跟踪等。这些功能需要在系统设计之初明确。 2. 技术选型 选择适合的技术栈。前端可以使用框架如React、Vue.js&#xff0c;后端可选择Node…

智慧财务的未来

信息化时代&#xff0c;财务管理不再局限于传统的手工操作&#xff0c;而是借助RPA技术实现了自动化、智能化的转型。智慧财务作为财务管理的一种新模式&#xff0c;将为企业提供更加高效、便捷的服务&#xff0c;使企业能够更好地适应市场需求的变化&#xff0c;在瞬息万变的市…

史上最详细注释,用flask写一个博客系统

文本用flask写个博客系统&#xff0c;源码带有详细注释&#xff0c;通俗易懂&#xff0c;拿去就能用。博客效果如下&#xff0c;博客首页&#xff1a; 这个博客麻雀虽小&#xff0c;但五脏俱全。有如下功能&#xff1a; 博客文章浏览用户注册用户登录/登出发文章/修改文章/删除…

vue:js中合并对象的方法

目前比较常用的一共有三种 1、使用object.assign() 它可以将一个或多个对象的属性复制到目标对象中&#xff0c;第一个参数就是目标对象&#xff0c;这里举个例子&#xff1a; <template><div>{{data}}</div> </template> <script> export de…

陪诊接单系统|陪诊系统助力您获取更好的服务

为了解决陪诊过程中的种种瓶颈和问题&#xff0c;我们开发了一款创新的陪诊接单系统&#xff0c;旨在为客户提供更加高效、专业的陪诊服务。该系统凭借其独特的功能和特点&#xff0c;助力您获取更好的陪诊服务体验。 陪诊系统功能&#xff1a; 1、诊前约号&#xff1a;人工带…

MySql优化经验分享

一条sql的具体执行过程 连接 我们怎么查看MySQL当前有多少个连接&#xff1f; 可以用show status命令&#xff0c;模糊匹配Thread&#xff0c; Show global status like "Thread%" show global variables like wait timeout;—非交互式超时时间&#xff0c;如JDBC…

【数据结构】树家族

目录 树的相关术语树家族二叉树霍夫曼树二叉查找树 BST平衡二叉树 AVL红黑树伸展树替罪羊树 B树B树B* 树 当谈到数据结构中的树时&#xff0c;我们通常指的是一种分层的数据结构&#xff0c;它由节点&#xff08;nodes&#xff09;组成&#xff0c;这些节点之间以边&#xff08…

记一次大数据事故@用了很久的虚拟机环境突然不能联网了

记一次大数据事故用了很久的虚拟机环境突然不能联网了 背景 今天打开自己电脑上的虚拟机环境打算练习一下flink&#xff0c;结果发现vmware里虚拟机能正常开机&#xff0c;也能正常进图os&#xff0c;但是就是不能ping通主机&#xff0c;主机也不能ping通虚拟机 探查 1、…

@Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成

问题 Tag和Operation标签失效 但是Schema标签有效 pom依赖 <!-- 接口文档--><!--引入openapi支持--><dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><vers…

c语言练习(9周)(16~20)

输入12个一位整数&#xff0c;创建二维数组a[3][4]&#xff0c;显示二维数组及各列的平均值&#xff0c;平均值四舍五入到小数点后一位。 题干输入12个一位整数&#xff0c;创建二维数组a[3][4]&#xff0c;显示二维数组及各列的平均值&#xff0c;平均值四舍五入到小数点后一…

RIP路由配置

RIP路由配置步骤与命令&#xff1a; 1.启用RIP路由&#xff1a;router rip 2.通告直连网络&#xff1a;network 直连网络 3.启用RIPv2版本&#xff1a;version 2 4.禁用自动汇总&#xff1a;no auto-summary 注意&#xff1a;静态路由通告远程网络&#xff0c;动态路由通告…