首页 > 其他分享 >二分模板

二分模板

时间:2023-10-15 17:23:12浏览次数:31  
标签:二分 int mid else while check 模板

整数二分边界

bool check(int x) {/* ... */} // 检查x是否满足某种性质

// 区间[l, r]被划分成[l, mid]和[mid + 1, r]时使用:
int bsearch_1(int l, int r)
{
    while (l < r)
    {
        int mid = l + r >> 1;
        if (check(mid)) r = mid;    // check()判断mid是否满足性质
        else l = mid + 1;
    }
    return l;
}
// 区间[l, r]被划分成[l, mid - 1]和[mid, r]时使用:
int bsearch_2(int l, int r)
{
    while (l < r)
    {
        int mid = l + r + 1 >> 1;
        if (check(mid)) l = mid;
        else r = mid - 1;
    }
    return l;
}

浮点数二分边界

bool check(int x)
{
    //根据题目出判断条件
}

void solve()
{
    double l=0,r=1e9;
    while (abs(l-r)>=1e9)//这里和整数不同,因为我们需要精确到小数
    {
        int mid=(l+r)/2;
        if(check(mid)) r=mid;
        else l=mid;
    }
}

 

标签:二分,int,mid,else,while,check,模板
From: https://www.cnblogs.com/whatdo/p/17765840.html

相关文章

  • 小程序底层技术机制解读 - 模板引擎
    模板引擎在小程序开发中扮演着关键的角色,它负责将数据渲染到页面上,实现动态的用户界面。本文将深入解读小程序的模板引擎的底层技术机制,以及如何使用它来实现数据和界面的绑定。同时,我们将提供一个简单的代码演示,以帮助读者更好地理解模板引擎的实际应用。小程序模板引擎的作用小程......
  • 手撕Vue-查找指令和模板
    接着上一篇文章,我们已经实现了提取元素到内存的过程,接下来我们要实现的是查找指令和模板。大致的思路是这样的:遍历所有的节点需要判断当前遍历到的节点是一个元素还是一个文本如果是一个元素,我们需要判断有没有v-model属性如果是一个文本,我们需要判断有没有{{}}的内容......
  • c++ 线段树模板
    洛谷模板:P3372【线段树1】 #include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintN=1e5+10;inta[N],d[N<<2],b[N<<2];intn,q;inlinevoidbuild(intl,intr,intp){if(l==r){d[p]=a[l];......
  • 算法0506 对数器 二分搜索
    对数器非常重要的自我验证代码正确性的方法在面试时或机试时写算法题,没有测试用例或者测试用例太少,导致巨大的数据量无法进行测试时。需要自己写测试用例数据时可以使用对数器。......
  • 模板方法模式
      ......
  • 学习C语言心得-自定义函数-对整形有序数组进行二分查找-二分法
    对整形有序数组进行二分查找#include<stdio.h>intfind(intarr[],intsz,intk){ intleft=0;intright=sz-1; while(left<=right) { intmid=left+right/2; if(k>arr[mid]) { left=mid+1; } if(k<arr[mid]) { right=mid......
  • Vue3| 模板引用、defineExpose宏函数
    模板引用的概念:通过ref标识获取真实的dom对象或者组件实例对象 使用:1.调用ref函数生成一个ref对象<script setup>import {ref} from 'vue'const h1Ref=ref(null)</script>2.通过ref标识绑定ref对象到标签<script setup>import {ref......
  • 用户态app Makefile 简易示例模板
    #Makefileforuser-spaceprogramexportPATH=/opt/toolchain/aarch64/bin/:$PATHCC:=aarch64-none-linux-gnu-gccDIR_PATH:=/home/user/sdk-v22.04/test_makefileOTHER_DUND_DIR:=$(DIR_PATH)/test_file_cOTHER_DUND_H:=$(DIR_PATH)/test_file_hCFLAGS:=-......
  • 十分钟带你搞懂WPF模板Template
    三类模板(ControlTemplate,DataTemplate,ItemsPanelTemplate)ControlTemplate(所有控件的显示渲染)是用来重写现有控件的可视结构的,一般和依赖属性和附加属性结合,加上绑定,控件可以获得很好的扩展。demo以下是一个简单的WPFControlTemplate样式示例。这个示例是为一个Button......
  • vue实例挂载以及模板解析过程
    抽空看了下vue源码,记录下newVue()的过程。 在package.json中运行命令添加sourcemap,打包后在源码案例目录下创建新的html文件,运行后可以在控制台断点调试 测试代码<scriptsrc="../../dist/vue.js"></script><divid="demo"><p@click="searchQuery=333">{{sear......