二分模板
111 字
1 分钟
二分模板
二分模板主要有两种:
模板1:
while (l < r) { int mid = l + r >> 1; //(l+r)/2 if (check(mid)) r = mid; // check()判断mid是否满足性质 else l = mid + 1; }模板2:
while (l < r) { int mid = l + r + 1 >> 1; //(l+r+1)/2 if (check(mid)) l = mid; else r = mid - 1; }模板3:(浮点二分)
while(r-l>1e-5) //需要一个精度保证{ double mid = (l+r)/2; if(check(mid)) l=mid; //或r=mid; else r=mid; //或l=mid;}文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!