当前位置:   article > 正文

ACM 二分查找 二分答案 模板_acm 二分模板题

acm 二分模板题

我自己的模板

  1. int l=0,r=100,ans=0;
  2. while(l<=r)
  3. {
  4. mid=(l+r)/2;
  5. if (check(mid)) {l=mid+1;ans = mid; }else r=mid-1; //注意+1,-1否则死循环
  6. }



男队长的模板

  1. int main(){
  2. == key
  3. int m;
  4. while ( l <= r ) {
  5. m = ( l + r ) >> 1;
  6. if ( x[m] == key ) return m;
  7. else if ( key > x[m] )
  8. l = m + 1;
  9. else
  10. r = m - 1;
  11. }
  12. >= key 中最小的
  13. int ret;
  14. while ( l <= r ) {
  15. m = ( l + r ) >> 1;
  16. if ( x[m] >= key ) {
  17. ret = m;
  18. r = m - 1;
  19. } else
  20. l = m + 1;
  21. }
  22. <= key 中最大的
  23. int ret;
  24. while ( l <= r ) {
  25. m = ( l + r ) >> 1;
  26. if ( x[m] <= key ) {
  27. ret = m;
  28. l = m + 1;
  29. } else
  30. r = m - 1;
  31. }
  32. }



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/386067
推荐阅读
相关标签
  

闽ICP备14008679号