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

算法基础学习|03整数二分

一、思路

(1)mid=(l+r+1)/2

        if(check(mid)):1.true      [mid,r]       l=mid

                               2.false     [l,mid-1]    r=mid-1

(2)mid=(l+r)/2

        if(check(mid)):1.true      [l,mid]        r=mid

                               2.false     [mid+1,r]   l=mid+1

二、模板

如何选择模板?

根据check函数选择

数的范围

#include<bits/stdc++.h>
using namespace std;const int N=1e5+10;int n,m,x;
int q[N];int main()
{scanf("%d%d",&n,&m);for(int i=0;i<n;i++)scanf("%d",&q[i]);while(m--){int x; scanf("%d",&x);int l=0,r=n-1;while(l<r){int mid=l+r>>1;if(q[mid]>=x)r=mid;else l=mid+1;}if(q[l]!=x)cout<<"-1 -1"<<endl;else{cout<<l<<" ";int l=0,r=n-1;while(l<r){int mid=l+r+1>>1;if(q[mid]<=x)l=mid;else r=mid-1;}cout<<l<<endl;}}return 0;
}

http://www.dtcms.com/a/166190.html

相关文章:

  • 如何编制研发部门绩效考核制度
  • 删除k8s某命名空间,一直卡住了怎么办?
  • java之Integer、Double自动拆装箱比较,踩坑值int和Integer比较之空指针异常
  • 垒球世界纪录多少米·棒球1号位
  • 三格电子上新了——超高频RFID读写器
  • 2025最新福昕PDF编辑器,PDF万能处理工具
  • PostgreSQL事务与并发清理
  • Electron Forge【实战】自定义菜单 -- 顶部菜单 vs 右键快捷菜单
  • 力扣HOT100——207.课程表
  • pbchsim.c中main函数流程
  • 数据库有哪些特性是什么
  • 如何用GPU Instancing来优化树木草石重复模型
  • 【网络原理】 《TCP/IP 协议深度剖析:从网络基础到协议核心》
  • 产品VP简历模板案例
  • 基于大模型的膀胱肿瘤全周期诊疗方案研究报告
  • 在柯希霍夫积分法偏移成像中,旅行时计算中振幅和相位信息
  • 斯坦福RGA软件 老版本和兼容Windows 11版本可选
  • Linux指令
  • 产品经理.产品设计.产品设计工具
  • STM32F10X OLED屏幕点亮
  • 多类型文件集中查看系统
  • 计算机考研精炼 操作系统
  • 合并两个有序数组
  • 【网工第6版】第6章 网络安全②
  • 基于 IAR Embedded Workbench 的自研 MCU 芯片软件函数与变量内存布局优化精控方法
  • 临床回归分析及AI推理
  • Vue3 + TypeScript 实现 PC 端鼠标横向拖动滚动
  • ModStartCMS v9.4.0 AI
  • 【Linux调整FTP端口】
  • 【人脸去遮挡前沿】三阶段级联引导学习如何突破真实场景遮挡难题?