80超时求助
查看原帖
80超时求助
1078007
yuyuelong楼主2023/11/4 23:02
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const long long ap=1e6+5;
long long x[ap],y[ap];
int main(){
	int a,b;
	int mid;
	int t,z;
	cin>>a>>b;
	for(int i=0;i<a;i++){
		cin>>x[i];
	}
	for(int i=0;i<b;i++){
		cin>>y[i];
		t=0;
		z=a-1;
	while(t<z){
		mid=(t+z)/2;
		if(x[mid]>y[i]){
			z=mid;
		}
		else if(x[mid]<y[i]){
			t=mid+1;
		}
		else{
			break;
		}
	}
	if(x[mid]==y[i]){
		if(mid!=0){
			while(x[mid-1]==x[mid]&&mid>0){
				mid-=1;
			}
		}
		
		cout<<mid+1<<" ";
	}
	else{
		cout<<"-1"<<" ";
	}
}
cout<<endl;
	return 0;
} 

最后一个计分点超时了,求大佬给点优化方案

2023/11/4 23:02
加载中...