5 条题解

  • 2
    @ 2025-2-21 13:56:31

    #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; }

    • 1
      @ 2025-2-20 13:40:14
      using namespace std;
      int a[1000000];
      bool flag=false;
      void f(int c,int d)
      {
      	if(c>0){
      		if(a[c]==d) flag=true;
      		else return f(c-1,d);
      		if(flag) cout<<c;
      	}
      	else{
      		cout<<"-1";
      	}
      }
      int main()
      {
      	int n,m;
      	cin>>n>>m;
      	for(int i=1;i<=n;i++){
      		cin>>a[i];
      	}
      	f(n,m);
      	return 0;
      }
      
      • 0
        @ 2025-8-29 2:05:21

        555

        • 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
            上传者