c++.求助!我的代码有什么问题
查看原帖
c++.求助!我的代码有什么问题
1176398
xuyixuan_123楼主2025/1/22 14:45

求助qwq

我是用二分做的,大家能看一下我的代码有什么问题吗

话不多说,上代码

#include<bits/stdc++.h>
using namespace std;
long long m,n,a[100010],b[100010],ans;
int bs(int x){
	int l=1,r=n;
	int ans;
	while(l<=r){
		int mid=(l+r)>>1;
		if(a[mid]<=x){
			l=mid+1;
			ans=mid;
		} 
		else r=mid-1;
	}
	return ans;
}
int main(){
	scanf("%lld%lld",&m,&n);
	for(int i=1;i<=m;i++){
		scanf("%lld",&a[i]);
	}
	sort(a+1,a+m+1);
	for(int i=1;i<=n;i++){
		scanf("%lld",&b[i]);
	}
	for(int i=1;i<=m;i++){
		if(b[i]<=a[1]){
			ans+=a[1]-b[i];
		}
		else{
			ans+=min(abs(bs(a[i-1])-bs(b[i])),abs(bs(a[i])-bs(b[i])));
		}
	}
	printf("%lld",ans);
	return 0;
}

(改对必关)

2025/1/22 14:45
加载中...