5 条题解
-
0
Guest
-
2
#include<bits/stdc++.h> using namespace std; int a[1000007]; int mids(int s[],int high,int low,int m) { int mid=(high+low)/2; if(s[high]<m) { cout<<-1; } else if(s[mid]==m) { cout<<mid; } else if(m<s[mid]) { return mids(s,mid-1,low,m); } else if(m>s[mid]) { return mids(s,high,mid+1,m); } } int mian() { int n,m; cin>>n>>m; for(int i=1;i<=n;i++) cin>>a[i]; mids(a,n,1,m); return 0; }
-
0
二分模版题。
#include<bits/stdc++.h> using namespace std; const int N=1e7+5; int a[N],n,k; int bs(int l,int r,int x){ if(l>r) return -1; int mid=(l+r)>>1; if(a[mid]==x) return mid; else if(x>a[mid]) return bs(mid+1,r,x);//向右找 else return bs(l,mid-1,x);//向左找 } int main(){ cin>>n>>k; for(int i=1;i<=n;i++) cin>>a[i]; cout<<bs(1,n+1,k); }
-
-2
诏曰
#include<bits/stdc++.h> using namespace std; int nums[100000000],n,m; int BinSearch(int r[],int low,int high,int num){ int mid; if(low>high) return -1; else{ mid=(low+high)/2; if(num>r[mid]) return BinSearch(r,mid+1,high,num); else if(num<r[mid]) return BinSearch(r,low,mid-1,num); else return mid; } } int main(){ cin>>n>>m; for(int i=1;i<=n;i++) cin>>nums[i]; cout<<BinSearch(nums,1,n,m); return 0; }
- 1
信息
- ID
- 665
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 62
- 已通过
- 18
- 上传者