int三分
int calc(int M)
{
}
int solve(int L, int R)
{
int M, RM;
while (L + 1 < R)
{
M = (L + R) / 2;
RM = (M + R) / 2;
if (calc(M) < calc(RM)) //计算最小值,若为最大值则>
R = RM;
else
L = M;
}
return L;
}
注意一点,double的循环条件中最好使用以下的表示(L + EPS < R),如果使用dcmp(R - L)> 0判断也可以,但是使用dcmp函数时候一定不能写等号,因为如果两个double数在EPS范围内相等的还继续的话会导致死循环