在我的代码上改(优化P2249)
查看原帖
在我的代码上改(优化P2249)
991435
wcy20120222楼主2024/12/10 18:26
#include <bits/stdc++.h>
using namespace std;
int a[1000005],b[100005];
int n,m;
int pd(int mid){
	if(a[mid-1]==a[mid]){
		return pd(mid-1);
	}else{
		return mid;
	}
}
int f(int i,int l,int r,int mid){
	for(int j=1;j<=n;j++){
        if(b[i]==a[mid]){
			mid=pd(mid);
            return mid;
        }
        if(b[i]<mid){
			r=mid-1;
            mid=(r+l)/2;
        }else{
            l=mid+1;
            mid=(r+l)/2;
        }
    }
    return -1;
} 
int main() {
	int l,r,mid,s;
	int t=0;
	cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    
    for(int i=1;i<=m;i++){
        cin>>b[i];
		l=1;
        r=n;
        mid=(l+r)/2;
        t=0;
        cout<<f(i,l,r,mid)<<" ";
    }
	return 0;
}

求改Orz

过题才关!!!

2024/12/10 18:26
加载中...