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)欧拉筛的思想很重要,欧拉筛+欧拉筛的思想,不然直接分解会超时