Processing math: 100%

zawatins-library

This documentation is automatically generated by online-judge-tools/verification-helper

View the Project on GitHub zawa-tin/zawatins-library

:heavy_check_mark: binary-seach-ld (浮動小数点数二分探索)
(src/template/binary-search-ld.hpp)

概要

与えられた範囲 l,r と単調性関数 f :  p  p  R, l  p  r   false, true  について f(p) の値が変化する境界値を発見します。

機能

関数

T zawa::binary_search<T, F, up = 80>(T ok, T ng, const F& f)

参考

tweet by @meguru_comp

Verified with

Code

#pragma once

#include <cstddef>

namespace zawa {

template <class T, class F, std::size_t up = 80>
T binary_search_ld(T ok, T ng, const F& f) {
	for (std::size_t _ = 0 ; _ < up ; _++) {
		T mid = (ok + ng) / 2;
		if (f(mid)) {
			ok = mid;
		}
		else {
			ng = mid;
		}
	}
	return ok;
}

}
Back to top page