写正确的整数二分

2023-11-08

二分

第一篇二分搜索论文是 1946 年发表,然而第一个没有 bug 的二分查找法却是在 1962 年才出现,中间用了 16 年的时间。
——不知道哪里看的

整数二分

yxc二分模板
二分的本质是二段性不是单调性。


当想找不满足性质的边界值(红色区域的右边界值)

  1. 找中间值 mid = (l+r+1)/2
  2. if(check(mid))等于true或者是false
    check(m)是检查m是在不满足性质的区间(检查是不是在红色区间)
  3. 更新l或者r

二分左区间的右端点


当想找满足性质的边界值(绿色区域的左边界值)

  1. 找中间值 mid = (l+r)/2
  2. if(check(mid))等于true或者是false
    check(m)是检查m是在满足性质的区间(检查是不是在绿色区间)
  3. 更新l或者r

二分右区间的左端点


归结上面的两种二分方法,步骤为:

  1. 先写一个check函数
  2. 判定在check的情况下(true和false的情况下),如何更新区间。
  3. 在check(m)==true的分支下是:
    1. l=mid的情况,中间点的更新方式是m=(l+r+1)/2
    2. r=mid的情况,中间点的更新方式是m=(l+r)/2

这种方法保证了:

  1. 最后的l==r
  2. 搜索到达的答案是闭区间的,即a[l]是满足check()条件的。

模板

acwing 789

//#define judge
#include <bits/stdc++.h>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

写正确的整数二分 的相关文章

  • 202310读书笔记|《大白鲸原创图画书优秀作品:虾一跳》——蝴蝶效应之最,你值得一读

    202310读书笔记 大白鲸原创图画书优秀作品 虾一跳 蝴蝶效应之最 你值得一读 大白鲸原创图画书优秀作品 虾一跳 作者 耿彦红 文 齐海潮 图 由虾一跳的连锁反应构成了整本书的故事脉络 很生动 故事及叙述的重复都不冗杂 反而很朗朗上口 并
  • 《国富论》笔记——货币

    上一个读书笔记 我简单发散思维到了货币 从以物易物到以贝壳作为货币举了一段例子 国富论 第四章就马上讲到了货币 并且补充了我很多未分析到的地方 货币的起源 当以物易物的时候 也许是因为我不再需要你的物品了 所以不再需要和你交换 你的东西只有
  • 《编程珠玑》--读书笔记12章:取样问题

    第十二章 作者提出了一个问题 程序的输入包含两个整数m和n 其中m lt n 输出是0 n 1范围内的m个随机整数 不允许重复 有两种方法达到目的 1 思路 从r个剩余的整数中选出s个 以概率s r来选择下一个数 比如 m 2 n 5 选择
  • 《开拓者FPGA开发指南》读书笔记——Verilog HDL语法

    Verilog HDL语法 6 1 Verilog和C的区别 6 2 Verilog基础知识 6 2 1 Verilog的逻辑值 6 6 2 Verilog的标识符 6 2 Verilog概述 6 2 1 Verilog简介 6 2 2 V
  • 写正确的整数二分

    二分 第一篇二分搜索论文是 1946 年发表 然而第一个没有 bug 的二分查找法却是在 1962 年才出现 中间用了 16 年的时间 不知道哪里看的 整数二分 yxc二分模板 二分的本质是二段性不是单调性 当想找不满足性质的边界值 红色区
  • Java8学习记录(一)——Lambda表达式

    这两天看了 Java8实战 做一下记录 目录 一 行为参数化 1 什么是行为参数化 二 函数式接口 1 概念 三 Lambda表达式 四 方法引用 注意点 1 静态方法引用 2 实例方法引用 重点来了 任意类型的实例方法引用 现有对象的实例
  • 《大五人格心理学》读书笔记

    这本书介绍了一下职场中的大五人格 具有不同人格特质的人适合干不同的工作 了解自己的人格特质 有利于自己的职业规划 了解同事的人格特质 有利于合作 1 宜人性 宜人性的心声 这对他人有什么影响VS 这对我有什么价值 宜人性的子维度 同理心 经
  • 读书笔记_《Linux高性能服务器编程》_第 5 章:网络编程基础API

    第 5 章 Linux网络编程基础API 知识要点 socket 地址 API socket 基础 API 网络信息 API 1 socket 地址API 主机字节序和网络字节序 CPU 32位 的累加器一次至少可以装载 4 字节 即一个整
  • 从瀑布到敏捷——漫画解读软件开发模式变迁史

    网址 https www tapd cn forum view 36971 从文章中可知 1 瀑布模型 将客户隔绝在外并按顺序逐一完成的模式 从时间上来说 只有等上一交付件完成了 下一阶段才能开始是一种浪费 特点 文档驱动 单道生产 2 敏
  • 202326读书笔记

    202326读书笔记 读给孩子的时令古词 冰肌绰约月朦胧 仿佛暗香浮动 竹杖芒鞋轻胜马 谁怕 一蓑烟雨任平生 料峭春风吹酒醒 微冷 山头斜照却相迎 春 雨水 惊蛰 春分 清明 谷雨 夏 小满 芒种 小暑 大暑 秋 处暑 白露 寒露 霜降 冬
  • 《Vision-Language Pre-Training with Triple Contrastive Learning》/《具有三重对比学习的视觉语言预训练》

    一 摘要 视觉语言表示学习很大程度上受益于通过对比损失 例如 InfoNCE损失 的图像 文本对齐 这种对齐策略能够最大化图像与其匹配文本之间的互信息 MI 然而 简单地执行跨模态对齐 CMA 不能确保来自相同模态的相似输入保持接近 这可能
  • 概念学习—机器学习

    概念学习 介绍 概念学习 假设的一般到特殊序 Find S 寻找极大特殊假设 变型空间和候选消除算法 表示 更简明的表示 关于变型空间和候选消除的说明 候选消除算法是否会收敛到正确的假设 归纳偏置 介绍 定义 概念学习是指从有关某个布尔函数
  • 手写体数字识别例程——LeNet-5模型

    上一篇博客中介绍了Caffe环境的搭建 本片博客中介绍一下 在caffe中训练的第一个CNN模型LeNet 5 如果存在不正确的地方欢迎指正 该例程用的数据集是MNIST 该数据集中包含60000个训练集和10000个测试集 使用的CNN模
  • 《Java并发编程的艺术》知识点

    目录 一 并发编程挑战 1 上下文切换 2 死锁 二 并发机制底层实现原理 1 volatile原理 2 synchronized原理 3 原子类实现原理 CAS存在的三大问题 三 内存模型 1 指令重排 四 并发编程基础 1 概念 2 优
  • extern详解

    extern 关键字 extern是C语言中的一个关键字 一般用在变量名前或函数名前 作用是用来说明 此变量 函数是在别处定义的 要在此处引用 extern这个关键字大部分读者应该是在变量的存储类型这一类的内容中 遇到的 下面先分析C语言不
  • 【读书笔记】-《工业互联网-技术与实践》

    前言 现在的技术发展潮流 基本上往大数据 人工智能的方向发展 但是归根结底 是什么推动了这些技术产业的发展 是什么支撑的 主要说的话 这和互联网的发展息息相关 也就是说现在一些主要的发达国家是如何拓展先技术新领域 并且如何把这些新技术应用到
  • 汇编语言(第三版)读书笔记 2 - 第2章 寄存器

    第2章 寄存器 前一章所说的总线 相对于CPU内部来说是外部总线 内部总线实现了CPU内部各个器件 运算器 控制器 寄存器 之间的联系 外部总线实现了CPU和主板上其他器件的联系 不同的CPU 寄存器的个数 结构是不相同的 8086 CPU
  • 读《洞穴奇案》——一个人是否应该为了避免偷窃面包而挨饿致死?

    之前在功利主义与法的精神一文中提到过正当防卫 在读了今天的内容后 我觉得有必要对正当防卫的内在精神做一个深入探讨 书中说到判断是否是正当防卫 需要去判断一个人在进行自我防卫的时候是否是故意的 我认为 对这个故意的解读 是判断正当防卫的关键
  • 【华为数据之道学习笔记】5-5结构化数据入湖

    结构化数据是指由二维表结构来逻辑表达和实现的数据 严格遵循数据格式与长度规范 主要通过关系型数据库进行存储和管理 触发结构化数据入湖的场景有两种 第一 企业数据管理组织基于业务需求主动规划和统筹 第二 响应数据消费方的需求 结构化数据入湖过
  • 【华为数据之道学习笔记】5-9图模型设计

    图模型作为当前流行的信息处理加工技术 自提出以来 迅速在 学术界和工业界得到了普及 在智能推荐 决策分析等方面有着广泛的应用 图模型由节点和边组成 节点表示实体或概念 边则由属性或关 系构成 实体指的是具有可区别性且独立存在的某种事物 如某

随机推荐

  • 量子软件开发包QPanda2学习之路(二)量子程序转化模块

    上一节中提到 QRunes文本是用于表述量子程序的指令集文本 所以在使用QPanda2的过程中不可避免的牵扯到量子程序的转化问题 在QPanda2中提供相关的函数接口支持转化功能的实现 量子程序转化QRunes模块 欲使用这一功能 我们先进
  • Windows操作系统各版本的历史 Windows系统历史版本简介

    30年间Windows系统有哪些版本 还记得你第一次了解到Windows操作系统存在的时候是哪一年吗 这些操作系统又有哪些特点呢 隐约知道计算机变得越来越小了吗 现在笔者将通过收集的资料 为各位细细解说曾经的操作系统 30年间Windows
  • vba 数值转文本_Excel数字批量转文本的2种方式!

    Excel情报局 生产搬运分享Excel基础技能 OFFICE 知识共享 青年 用1 的Excel基础搞定99 的日常工作 做一个有文艺范的Excel公众号 Excel是门手艺 玩转需要勇气 表哥带你玩转Excel 有温度的公众号 lt
  • 微软云搭建服务器,快速入门:创建服务器 - Azure 门户 - Azure Database for PostgreSQL - 单个服务器

    您现在访问的是微软AZURE全球版技术文档网站 若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站 请访问 https docs azure cn 快速入门 使用 Azure 门户创建 Azure Database
  • Transaction rolled back because it has been marked as rollback-only事务问题

    1 复现 public Class ClassOne private ClassTwo classTwo Transactional public void one try classTwo two catch Exception e lo
  • Eclipse中新建动态Web工程

    前提 Tomcat已安装好 此处以6 0为例 高版本也一样 在Eclipse中新建动态网站工程Eclipse gt new gt Dynamic Web projectProject name a04Target runtime Tomca
  • 爬虫是个啥

    走进爬虫 爬虫是什么 初识网络爬虫 隐藏在身边的网页蜘蛛 爬虫是黑客吗 为什么要学爬虫 数据来源 爬虫的应用领域 爬虫是什么 初识网络爬虫 网页蜘蛛 网络机器人 按照一定规则 自动抓取万维信息的程序或脚本 也就是说 爬虫可以自动浏览网页信息
  • hql语句

    简介 hql为hive sql的缩写 hive本身为java语言开发而成 所以hive上面如果有什么特殊需求 完全可以是用hive udf订制自己的需求 后续会介绍udf的开发方法 语法 以下只列举一些对作者有用的语法 LIKE操作 语法
  • 小白刚入门Python,学完基础后,接下来的学习步骤!

    自学Python要学多久可以学会 如果是自学 从零基础开端学习python的话 按照每个人理解能力的不同 大致上需求半年到一年半左右的时刻 当然 如果有其它编程言语的经历 入门还是比较快的 大概需求2 3个月可以用Python言语编写一些简
  • 关于 maven 中 SNAPSHOT 的 jar包的更新机制

    前言 我们知道maven包的版本有两类 一类是 SNAPSHOT 一类是 RELEASE 这两类有个重要的区别 RELEASE 的包需要改 pom xml 中的
  • Android Studio使用Lint进行代码检查

    Android Studio目前已经更新到1 4版本 它作为Google官方推荐的IDE 功能非常强大 其中提供了一套静态代码分析工具 它可以帮助我们检查项目中存在的问题 让我们更有规范性的开发App 它可以检查出 xml文件中是否存在ha
  • 2022年java中级开发工程师最新面试题

    1 JDK 和 JRE 有什么区别 JDK Java Development Kit 的简称 java 开发工具包 提供了 java 的开发环境和运行环境 JRE Java Runtime Environment 的简称 java 运行环境
  • 2023华为od机试统一考试B卷 Java【最小循环子数组】

    前言 本题使用Java解答 如果需要Python版本的代码 请参考以下链接 点我 题目描述 给定一个由若干整数组成的数组nums 请检查数组是否是由某个子数组重复循环拼接而成 请输出这个最小的子数组 输入描述 第一行输入数组中元素个数n 1
  • matlab中使用colormap没有效果

    在做数字图像处理实验的时候 需要将灰度图像做fft变换 显示其频谱图 代码如下 clc clear close all figure 1 grayimg imread grayimg jpg imshow grayimg figure 2
  • A Review on Deep Learning Techniques Applied to Semantic Segmentation

    Introduction Terminology and Background Concepts 1 Common Deep Network Architectures AlexNet VGG 16 GoogLeNet ResNet ReN
  • Pytest接口自动化测试实战演练

    结合单元测试框架pytest 数据驱动模型 allure 目录 api 存储测试接口 conftest py 设置前置操作 目前前置操作 1 获取token并传入headers 2 获取命令行参数给到环境变量 指定运行环境 commmon
  • 线下实践阿里云:「 云原生技术实践营 - 容器微服务专场 」

    一 前言 自己在杭州工作和生活也有将近10年 由于有些前同事和朋友在阿里上班 也过去玩过几次 在印象中 作为联谊公司 还和阿里组织过一些小规模的活动 比如相亲和篮球比赛 所以 对阿里杭州的滨江园区和西溪园区还都比较熟悉 如今 在南京工作和生
  • HTML标签概述及<html>,<head>,<title>,<link>,<form>,<meta>详细介绍

    HTML部分标签及其介绍 介绍 引用 HTML标签概述 基本标签 常用格式标签 表单标签 列表标签 应用标签 视频标签 创建链接 关系标签 表格标签 样式 节标签 元信息标签 编程标签 HTML组成 Html声明 Html头部 body部分
  • FastAPI从入门到实战(0)——初识FastAPI

    本文主要介绍一下FastAPI是什么 多数内容摘自官网 https fastapi tiangolo com zh FastAPI是什么 FastAPI 是一个用于构建 API 的现代 快速 高性能 的 web 框架 使用 Python 3
  • 写正确的整数二分

    二分 第一篇二分搜索论文是 1946 年发表 然而第一个没有 bug 的二分查找法却是在 1962 年才出现 中间用了 16 年的时间 不知道哪里看的 整数二分 yxc二分模板 二分的本质是二段性不是单调性 当想找不满足性质的边界值 红色区