二分探索
(math/binary_search.hpp)
Verified with
Code
#pragma once
#include<functional>
/**
* @brief 二分探索
*/
template<typename F>
long long bs(long long mn,long long mx,F func){
mn--;
mx++;
while(mx-mn>1){
long long mid=(mn+mx)/2;
if(!func(mid))mx=mid;
else mn=mid;
}
return mn;
}
#line 2 "math/binary_search.hpp"
#include<functional>
/**
* @brief 二分探索
*/
template<typename F>
long long bs(long long mn,long long mx,F func){
mn--;
mx++;
while(mx-mn>1){
long long mid=(mn+mx)/2;
if(!func(mid))mx=mid;
else mn=mid;
}
return mn;
}
Back to top page