2021.07.20暑假集训(二分+UCF Local Programming Contest Round 1A)

1.二分查找:

binary_search:返回bool值,是否存在

lower_bound:返回可插入的最小位置的迭代器,返回第一个符合条件的元素位置

upper_bound:返回可插入的最大位置的迭代器,返回最后一个符合条件的元素位置

eg:122233456

lower_bound(a,a+9,2)-a=1

upper_bound(a,a+9,2)-a=4

int find_low(int x){
    int mid,l=1,r=n;
    while(l<=r){
        mid=l+(r-l)/2;
        if(a[mid]<x) l=mid+1;//满足条件 
            else r=mid-1;
    }
    return l;
}
int find_upper(int x){
    int mid,l=1,r=n;
    while(l<=r){
        mid=l+(r-l)/2;
        if(a[mid]<=x) l=mid+1;
            else r=mid-1;
    }
    return l;
}

 2.E-Sum of a Function_UCF Local Programming Contest Round 1A (nowcoder.com)欧拉筛的思想很重要,欧拉筛+欧拉筛的思想,不然直接分解会超时

 

posted @ 2021-07-20 11:57  bonel  阅读(64)  评论(0)    收藏  举报