5 条题解

  • 0
    @ 2026-8-15 10:56:52
    # include <bits/stdc++.h>
    
    using namespace std;
    const int N=1e6+5;
    struct num{
    	int id,sum;
    	bool operator<(const num&a)const{
    		return a.sum>sum;
    	}
    }a[N];
    int n,m,x,l,r,mid;
    int main(){
    	cin>>n;
    	for(int i = 1;i<=n;i++){
    		cin>>a[i].sum;a[i].id=i;
    	}
    	cin>>x;
    	l=0,r=n+1,mid=(l+r+1)/2;
    	sort(a+1,a+n+1);
    	while(r-l>1){
    		mid=(l+r+1)/2;
    		if(a[mid].sum<x)
    			l=mid;
    		else
    			r=mid;
    		if(a[mid].sum==x){
    			for(int i = 1;i<=n;i++)printf("%d ",a[i].sum);
    			cout<<"\n";
    			cout<<a[mid].id<<endl;
    			return 0;
    		}
    	}
    	for(int i = 1;i<=n;i++)printf("%d ",a[i].sum);
    	cout<<"\n"; 
    	cout<<"Not Find"<<endl;
    	return 0;
    }
    
    • 0
      @ 2026-4-11 15:52:35
      #include<bits/stdc++.h>
      using namespace std;
      int n,m,b,a[2005],tmp;
      int main(){
      	cin>>n;
      	for(int i=1;i<=n;i++)
      		cin>>a[i];
      	cin>>m;
      	for(int i=1;i<=n;i++){
      		if(a[i]==m){
      			tmp=i;
      			break;
      		}
      	}
      	sort(a+1,a+n+1);
      	int l=0,r=n+1;
      	while(r-l>1){
      		int md=(r+l)>>1;
      		if(a[md]>=m)
      			r=md;
      		else
      			l=md;
      	}
      	for(int i=1;i<=n;i++)
      		cout<<a[i]<<" ";
      	cout<<endl;	
      	if(r<=n && a[r]==m)
      		cout<<tmp;
      	else
      		cout<<"Not Find";
      	return 0;
      }
      
      • -1
        @ 2025-7-17 10:33:20

        #include<bits/stdc++.h> using namespace std; int v[100005]; int main(){ int n; cin>>n; for(int i=1;i<=n;i++)cin>>v[i]; int q,ans=-1; cin>>q; sort(v+1,v+n+1); int l=1,r=n; while(l<=r){ int mid=(l+r)/2; if(v[mid]<q)l=mid+1; else if(v[mid]>q)r=mid-1; else ans=mid; } for(int i=1;i<=n;i++)cout<<v[i]<<" "; cout<<endl; if(ans==-1)cout<<"Not Find"; else cout<<ans; return 0; } TLE玄关求DALAO调

        • -1
          @ 2024-9-17 15:28:52
          /*
          int      %o/%lo(八进制) %d/%i/%ld/%li(十进制) %x/%lx(十六进制)[如标名为o/lo/d/i/lo/li/x/lx即输出为八进制/十进制/十六进制]
          longlong %lld
          float    %f/%e
          double   %lf/%le
          char     %c
          char[]   %s
          'a'=97
          'z'=122
          'A'=65
          'Z'=90
          '0'=48
          '9'=57
          */
          #include <iostream>
          #include <iomanip>
          #include <cmath>
          #include <cstdio>
          #include <cstring>
          #include <algorithm>
          #include <ctime>
          #include <limits>
          #include <assert.h>
          #include <stdlib.h>
          using namespace std;
          #define LL long long
          #define ull unsigned long long
          const int N=1e5+10;
          const int INF=0x3f3f3f3f;
          const double pi=3.1416;
          int n,m,ans;
          struct sb{
          	int x;
          	int id;
          }a[N];
          bool cmp(sb a1,sb a2){
          	return a1.x<a2.x;
          }
          int main(){
          	cin>>n;
          	for(int i=1;i<=n;i++){
          		cin>>a[i].x;
          		a[i].id=i;
          	}
          	cin>>m;
          	sort(a+1,a+n+1,cmp);
          	for(int i=1;i<=n;i++){
          		cout<<a[i].x<<" ";
          		if(a[i].x==m){
          			ans=a[i].id;
          		}
          	}
          	cout<<endl;
          	if(ans){
          		cout<<ans;
          	}else{
          		cout<<"Not Find";
          	}
          return 0;
          }
          
          • -1
            @ 2022-9-24 16:07:27
            #include <iostream>
            #include <algorithm>
            using namespace std;
            int n, x;
            struct node
            {
            	int num,id;
            }a[1000010];
            int find(int num)
            {
            	int l = 0, r = n-1;
            	while (l <= r)
            	{
            		int mid = (l + r) / 2;
            		if (num == a[mid].num)
            			return a[mid].id;
            		else if (num < a[mid].num)
            			r = mid - 1;
            		else
            			l = mid + 1;
            	}
            	return -1;
            }
            bool cmp(node x, node y)
            {
            	return x.num < y.num;
            }
            int main()
            {
            	cin >> n;
            	for (int i = 0; i < n; i++)
            	{
            		cin >> a[i].num;
            		a[i].id = i+1;
            	}
            	sort (a, a + n,cmp);
            	cin >> x;
            	for (int i = 0; i < n; i++)
            	{
            		cout << a[i].num << " ";
            	}
            	cout << endl; 
            	int findnum = find(x);
            	if(findnum == -1)
            		cout << "Not Find";
            	else
            		cout << findnum << endl;
            }
            
            • 1

            信息

            ID
            1564
            时间
            1000ms
            内存
            256MiB
            难度
            7
            标签
            递交数
            738
            已通过
            184
            上传者