1. 思想 2. 模板 3. 应用 数的范围 题目链接 #include <iostream> using namespace std; const int N = 1e6+10; int arr[N]; int main() { int n, q; scanf("%d %d", &n, &q); for(int i=0; i<n; i++) scanf("%d", &arr[i]); while(q--) { int x; scanf("%d", &x); int l=0, r=n-1; while(l < r) { int mid = (l+r)>>1; if(arr[mid] >= x) r = mid; else l = mid+1; } if(arr[l] != x) cout<<"-1 -1"<<endl; else{ cout<<l<<" "; l=0, r=n-1; while(l < r) { int mid = (l+r+1)>>1; if(arr[mid] <= x) l = mid; else r = mid-1; } cout<<l<<endl; } } return 0; } 浮点数二分 题目链接 #include <iostream> using namespace std; int main() { double n; cin>>n; double l = -10000, r = 10000; while(r-l > 1e-8) { double mid = (l+r)/2; if(mid*mid*mid >= n) r = mid; else l = mid; } printf("%lf", l); return 0; } 注:本系列参考:AcWing。。。