蒟蒻70分求优化
  • 板块P9519 pay
  • 楼主crzcqh
  • 当前回复8
  • 已保存回复8
  • 发布时间2023/8/22 14:06
  • 上次更新2023/11/3 02:00:24
查看原帖
蒟蒻70分求优化
769006
crzcqh楼主2023/8/22 14:06

rt,时间复杂度O(n2logn)O(n^2logn)

#include<bits/stdc++.h>
using namespace std;
long long n,m,M;
long long a[1000010],b[1000010],t[1000010];
bool check(long long x){
	memset(t,0,sizeof(t));
	for(long long i=1;i<=m;i++){
		t[b[i]]+=x;
		for(long long j=1;j<=n;j++){
			if(j==b[i]) continue;
			t[j]+=max(0ll,x-abs(b[i]-j));
		}
	}
	for(long long i=1;i<=n;i++)
		if(t[i]<a[i]) return false;
	return true;
}
int main(){
	cin>>n>>m;
	for(long long i=1;i<=n;i++) cin>>a[i],M=max(M,a[i]);
	for(long long i=1;i<=m;i++) cin>>b[i];
	long long l=0,r=M<<1,mid;
	while(l<r){
		mid=(l+r)>>1;
		if(check(mid)) r=mid;
		else l=mid+1;
	}
	cout<<l;
	return 0;
}

不知道怎么优化力(悲)

2023/8/22 14:06
加载中...