二分模板有两种,看情况用,主要的区分情况在于check的逻辑性以及mid在左半区间还是右半区间的划分
while(l<r){ int mid=l+r>>1; if(check(mid))r=mid; else l=mid+1; } while(l<r){ int mid=l+r+1>>1; if(check(mid))l=mid; else r=mid-1; }