【二分板子】

阅读 81

2022-04-20

//整数二分查找:在单调递增序列a中查找>=x的数中最小的一个
    while(l<r){
        int mid=(l+r)>>1;
        if(a[mid]>=x)r=mid;
        else l=mid+1;
    }
    cout<<a[l]<<endl;

    //整数二分查找:在单调递增序列a中查找<=x的数中最大的一个

    while(l<r){
        int mid=(l+r+1)>>1;
        if(a[mid]<=x)l=mid;
        else r=mid-1;
    }
    cout<<a[l]<<endl;

    //实数二分查找:确定精度eds
    const ll eps=1e-12;
    while(l+eps<5){
        double mid=(l+r)/2;
        if(check())r=mid;
        else l=mid;
    }

精彩评论(0)

0 0 举报