整数三分(模板)
如果是小数的话不要用EPS,直接循环上1000次。。。
这里是整数,需要注意三分的过程是取不到端点值的,所以需要一开始特判端点,而一开始特判端点又会在l>r时出错,所以也需要特判l>r的情况。
ll bin3(int l,int r) { if(l>r) return -INF; ll res=max(f(l),f(r)); while(l<=r){ int m=(l+r)>>1,mm=(m+r)>>1; ll fm=f(m),fmm=f(mm); if(fm<=fmm) l=m+1; else r=mm-1; res=max(res,max(fm,fmm)); } return res; }
没有AC不了的题,只有不努力的ACMER!