xiaolou296512

关于二分的学习

刚进入大学的时候,感觉二分挺深不可测的,临界点一直都想不清楚,每次在while循环中都不知道是应该<还是<=,迷迷茫茫了许久,终于在代码源wls的视频二分学习中,找到了一个很适合我的模板(我比较笨吧,把题目套模板可以更快更准的解决相关问题);下面是从wls学来的模块

int find(int x){

  int mid,l = 0,r = n+1;

  while(l + 1 < r){

     mid=( l + r ) / 2;

    if( mid 在分界线左边 ) l = mid;

    else r = mid;  

  }

  return l or r;

}

此二分目在寻找一个分界线,在i-j之间必然有一条分界线,使得一边是满足条件的,另一边的不满足条件的,当i+1=j时,i以及左边都是左分界线,j以及j右边都是右边的内容

 

posted on 2023-05-17 17:14  加了牛奶的咖啡  阅读(21)  评论(0)    收藏  举报

导航