首页 > 其他分享 >模板 - 二分&三分

模板 - 二分&三分

时间:2024-08-09 19:50:56浏览次数:14  
标签:二分 const int double mid EPS 模板 三分

二分 & 三分

整数二分

int BinarySearch(const int L,const int R)
{
	int l=L-1,r=R+1;
	while(l+1<r)
	{
		int mid=l+r>>1;
		if(check(mid)) l=mid;
		else r=mid;
	}
	return l;
}

浮点数二分

const double EPS=1e-6;
double BinarySearch(const double L,const double R)
{
	double l=L,r=R;
	while(r-l>EPS)
	{
		double mid=(l+r)/2.0;
		if(check(mid)) l=mid;
		else r=mid;
	}
	return l;
}

浮点数三分求单峰函数极值

const double EPS=1e-6;
double TernarySearch(const double L,const double R)
{
	double l=L,r=R;
	while(r-l>EPS)
	{
		double lmid=l+(r-l)/3.0,rmid=r-(r-l)/3.0;
		double lres=calc(lmid),rres=calc(rmid);
		if(lres<=rres) l=lmid;
		if(lres>=rres) r=rmid;
	}
	return l;
}

标签:二分,const,int,double,mid,EPS,模板,三分
From: https://www.cnblogs.com/jerrycyx/p/18351393

相关文章

  • 模板 - 数据结构
    链表定义structPeter{ intval; intnxt,pre;}node[M];intidx=0;初始化inlinevoidInit()//head:0;tail:n+1{ node[0]={0,n+1,0}; node[n+1]={0,n+1,0}; return;}在p后插入valinlinevoidinsert(intp,intval){ node[++idx]={val,node[p].nxt,p}; ......
  • 【C++】模板(相关知识点讲解 + STL底层涉及的模板应用)
    目录模板是什么?模板格式模板本质函数模板格式介绍显式实例化模板参数匹配原则类模板类模板的实例化非类型模板参数模板特化——概念函数模板特化类模板的特化全特化半特化偏特化三种类特化例子(放一起比较)模板分离编译STL中比较经典的模板应用(不包含argus)......
  • 移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——4.模板
    1.泛型编程如何实现一个通用的交换函数呢?voidSwap(int&left,int&right){inttemp=left;left=right;right=temp;}voidSwap(double&left,double&right){doubletemp=left;left=right;right=temp;}voidSwap(char&left,char&right)......
  • 8.9 线段树板子+三分补题+三维的bfs
    nowcoder训练区间线段树板子题,我们只需要把区间每一个点设置成1,然后修改的时候直接改点,然后查区间就行线段树维护最大字段和/01串最大连续1的个数模板题。把白色和黑色看成1/0两个数就行了。#include<bits/stdc++.h>usingnamespacestd;usingi64=longlon......
  • 【线段树合并/树上差分】[P4556 [Vani有约会] 雨天的尾巴 /【模板】线段树合并
    【线段树合并/树上差分】P4556[Vani有约会]雨天的尾巴/【模板】线段树合并思路对\(x,y,lca(u,v),fa_{lca(u,v)}\)四个点进行树上差分,然后用线段树合并动态权值线段树。#include<bits/stdc++.h>usingnamespacestd;usingi64=longlong;template<classNode>str......
  • 线段树合并模板
    template<classNode>structPersidentSegmentTree{#definelc(u)tr[u].l#definerc(u)tr[u].rconstintn;inttot=0;vector<Node>tr;vector<int>root;PersidentSegmentTree():n(0){}PersidentSegmentTree(in......
  • 零代码连接 OneNet 只需三分钟!一个安卓 APP 搞定 OneNet 物模型数据刷新与显示
    前言在物联网(IoT)开发中,快速连接设备与云平台、实现数据的实时刷新与显示,是开发者常常遇到的挑战。为此本文将展示如何在短短三分钟内,通过一个安卓APP轻松实现与OneNet的连接,并展示物模型数据。无论你是初学者还是有经验的开发者,这个简单的方法都能助你快速上手。什么......
  • C++标准模板库(STL)|容器|vector| queue|
    对STL进行总结,STL是standardtemplatelibrary的简写,是C++中的一个标准模板库,用于实现常用的数据结构和算法,它是C++程序员经常使用的一个工具箱。STL的主要目的是提高开发效率和代码质量,使得程序员可以更加便捷地完成常见的操作。里面包括:算法(algorithm)、容器(container)、仿函......
  • 大质数分解模板
    jiangly的(偷一下i64mul(i64a,i64b,i64m){returnstatic_cast<__int128>(a)*b%m;}i64power(i64a,i64b,i64m){i64res=1%m;for(;b;b>>=1,a=mul(a,a,m))if(b&1)res=mul(res,a,m);......
  • 关于二分图上的最大匹配、最小点覆盖、最大独立集以及最大权闭合子图的联系
    没有点权和边权的时候,不讨论最大权闭合子图,最大匹配=最小点覆盖=点数-最大独立集最小点覆盖=点数-最大独立集:这个很好理解,考虑只有一条边的二分图的情况,点覆盖要求两个端点至少选一个,独立集要求两个端点最多选一个,是互补的关系,这意味着一个合法点覆盖的点集与一个合法独立集的......