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

蓝桥杯算法日记|2.11二分算法

二分法是一种在有序数组中查找某一特定元素的搜索算法。二分法的基本思想是:每次将区间缩小一半,重复这个过程,直到找到目标值或者确定目标值不存在于该区间内。

整数二分、浮点二分、二分答案

退出条件:l、r相邻时候退出

#include <iostream>
using namespace std;
int main()
{
  // 请在此输入您的代码
  int data[200];
  for(int i=0 ; i < 200 ;i ++)data[i] = 4 * i + 6;
  int x;cin>>x;
  //二分法
  int l=0,r=199;
  while(l+1!=r){
    int mid=(l+r)/2;
    if(data[mid]>x){r=mid;}
    else l=mid;
  }
  cout<<l<<'\n';

  return 0;
}

答案取的是L;

浮点二分是在一个实数区间找一个数。实数区间可能会用f(x)一个函数来表示,判断条件是l,r非常接近,通常设置一个非常小的数sta=1e-6;

二分答案需要寻找单调函数,将它二分。将答案二分。

裂开了,,,,明天继续研究

//#include <iostream>
//using namespace std;
//int a[N];const N=5e4+5;
给了一个全程距离
//int check(int min){
//int res=0;//移走的石头数量
//for(int i=1;last=0;i<=N;i++){
//  if(a[i]-a[last]<mid){res++;continue;}
//  last=i;
//}
//return res;
//}
//int main()
//{
//  // 请在此输入您的代码
//  //最短跳跃距离尽可能长,最多移走M
//  int L,n,M;cin>>L>>n>>M;
// 
//  for(int i=0;i<n;i++){cin>>a[i];}
//  //for(int i=1;i<N;i++){b[i]=a[i]-a[i-1];}sort(b+1,b+1+N);
//  //求最短跳跃距离的max
//  //把最短跳跃距离写成check()函数,返回移走的岩石的数量
//  //1\先按照模板,把答案的得出写下来;
//  int l=0;r=n;
//  while(l+1!=r){
//    mid=(l+r)/2;
//    if(check(mid)<=M){l=mid;}
//    else r=mid;
//    }
//  }
//  cout<<r<<'\n';
//
//  return 0;
//}

#include <iostream>
using namespace std;
const int N=5e4+9;
int a[N],L,n,m;
int check(int mid){
  int res=0,last=0;
  for(int i=1;i<=n;i++){
    if(a[i]-a[last]<mid){res++;continue;}
    last=i;
  }
  if(L-a[last]<mid)return m+1;
  return res;
}
int main(){
  cin>>L>>n>>m;
  for(int i=1;i<=n;i++){cin>>a[i];}
  long long l=0,r=1e5+5;
  while(l+1!=r){
    long long mid=(l+r)/2;
    if(check(mid)<=m)l=mid;
    else r=mid;
  }
  cout<<l<<'\n';
    return 0;
}

2.11
分查找数组元素https://www.lanqiao.cn/problems/1389/submissions/67ab4a893b64c2ee8fae7d8d/
跳石头
https://www.lanqiao.cn/problems/364/submissions/67ab64528f5ada1189f76423/【还没研究明白】


http://www.kler.cn/a/542659.html

相关文章:

  • 游戏引擎学习第98天
  • 26~31.ppt
  • 【docker】docker改动镜像并重新编译举例
  • 活动预告 | Power Hour: Copilot 引领商业应用的未来
  • Spring常用注解和组件
  • 深度学习-交易预测
  • 【目标检测xml2json】label从VOC格式xml文件转COCO格式json文件
  • PostgreSQL 数据库压力测试指南
  • 普通用户授权docker使用权限
  • docker和docker compose版本太低问题的解决方案
  • 16.React学习笔记.React更新机制
  • 大模型被偷家?CNN结合多模态!
  • 2025.2.11——一、[极客大挑战 2019]PHP wakeup绕过|备份文件|代码审计
  • 前端设计模式介绍及案例(单例模式、代理模式、工厂模式、装饰者模式、观察者模式)
  • SpringBoot 统一功能处理之拦截器、数据返回格式、异常处理
  • clone gerrit repos 到windows本地
  • 算法设计-归并排序(C++)
  • Elasticsearch:如何使用 Elastic 检测恶意浏览器扩展
  • 基于GA遗传优化的电动汽车光储充电站容量配置算法matlab仿真
  • STL(八)—— stack和queue的模拟
  • DeepAR:一种用于时间序列预测的深度学习模型
  • 大语言模型安全威胁深度解析:攻击手法与实战案例
  • STM32自学记录(十)
  • 数据结构:排序—归并排序(四 )
  • 矩阵 NFC 碰一碰发视频源码搭建技术解析,支持OEM
  • STM32 HAL库 PWM程序(C语言)