标签:else ... 函数 区间 bool turn 二分 int 条件
区间[a,b],[a,c]满足条件而(c,b]不满足条件,或者,[a,c)不满足条件而[c,b]满足条件。函数bs(a,b)
返回c。
特判:
bs(a,b)
返回-1bs(a,b)
返回bbool ok(int m)
{
//...
}
int bs(int l,int r)
{
int m;
if(ok(l)&&ok(r))return r;
if(!ok(l)&&!ok(r))return -1;
if(!ok(l)){r=r^l;l=r^l;r=r^l;}
while(r-l>1||l-r>1)
{
m=(l+r)/2;
if(ok(m))l=m;
else r=m;
}
return l;
}
标签:else ... 函数 区间 bool turn 二分 int 条件
原文地址:https://www.cnblogs.com/maoruimas/p/9566244.html