当前位置: 首页 > 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.xdnf.cn/news/225199.html

相关文章:

  • 【工具变量】地级市李白消费指数及预期指数数据集(2012-2022年)
  • Java学习手册:Spring 中常用的注解
  • day11 python超参数调整
  • 在若依前后端分离项目中集成 ONLYOFFICE 以实现在线预览、编辑和协作功能
  • 网页出现502的报错是什么意思?
  • 泰迪杯特等奖案例学习资料:基于多模态数据融合与边缘计算的工业设备健康监测与预测性维护系统
  • GPU集群中的超节点
  • 基于Q学习的2048游戏智能体:制作一个自己会玩游戏的智能体
  • CSS实现DIV水平与垂直居中方法总结
  • tailwindcss如何改变antd子组件的样式
  • CSS:选择器-复合选择器
  • RHCSA Linux 系统 文件系统权限
  • Linux——HTTP协议理解
  • 7.计算机网络相关术语
  • Axure疑难杂症:中继器制作下拉菜单(多级中继器高级交互)
  • 使用PyTorch进行热狗图像分类模型微调
  • 第四部分:实用应用开发
  • libevent详解
  • 深⼊理解指针(7)
  • Python网络爬虫核心技术拆解:架构设计与工程化实战深度解析
  • 【数据通信完全指南】从物理层到协议栈的深度解析
  • 鸿蒙移动应用开发--ArkTS语法进阶实验
  • 【MongoDB篇】MongoDB的索引操作!
  • Spring Boot 中集成 Kafka 并实现延迟消息队列
  • 腾讯云服务器性能提升全栈指南(2025版)
  • C# 类成员的访问:内部与外部
  • 练习001
  • Java进阶--设计模式
  • 汽车OTA在线升级法规分析
  • 搭建基于 ChatGPT 的问答系统