前提: 一个抛物线(趋势), 求最值点.
思路: 求 [L,R] 中点 mid, 再求 [mid,R] 中点 midmid, 根据题意比较两者, 不断舍弃缩小.
- int sanfen(int l,int r){
- while(l<r-1){
- int mid=(l+r)>>1;
- int mmid=(mid+r)>>1;
- if(f(mid)>f(mmid)) // 求最大值
- r=mmid;
- else
- l=mid;
- }
- }
三分查找
来源: http://www.bubuko.com/infodetail-3107401.html