#6TLE求优化
查看原帖
#6TLE求优化
1455723
Lzj0314楼主2025/1/13 10:18
#include<bits/stdc++.h>
using namespace std;
int n,m,a[1000005],b[100005],l,r;
int find(int l,int r,int k){
	int m;
	while(l<=r){
		m=(l+r)/2;
		if(a[m]==k){
			while(a[m-1]==k) m--;
			return m;
		}
		else if(a[m]<k)
			l=m+1;
		else
			r=m-1;
	}
	return -1;
}
int main(){
	scanf("%d %d",&n,&m);
	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
	for(int i=1;i<=m;i++) scanf("%d",&b[i]);
	for(int i=1;i<=m;i++){
		l=1,r=n;
		if(b[i]==0&&a[1]==0) cout<<1<<' ' ;
		else cout<<find(l,r,b[i])<<' ';
	}
	return 0;
}

2025/1/13 10:18
加载中...