当前位置: 首页 > 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;
}

相关文章:

  • 如何编制研发部门绩效考核制度
  • 删除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屏幕点亮
  • 图忆|上海车展40年:中国人的梦中情车有哪些变化(上)
  • 新华时评:防范安全事故须臾不可放松
  • 王受文已任中华全国工商业联合会领导班子成员
  • 湖北鄂州通报4所小学学生呕吐腹泻:供餐企业负责人被采取强制措施
  • 孙磊已任中国常驻联合国副代表、特命全权大使
  • 中青旅:第一季度营业收入约20.54亿元,乌镇景区接待游客数量同比减少6.7%