蒟蒻求助,58分
查看原帖
蒟蒻求助,58分
174806
xbb2楼主2021/8/9 10:02

题目:P2751 [USACO4.2]工序安排Job Processing

提交:记录详情

#include<bits/stdc++.h>
using namespace std;
const long long N=1e4;
long long a[N],b[N],t[N],tt[N],ans=0,n,m1,m2;
int main(){
	cin>>n>>m1>>m2;
	for(long long i=1;i<=m1;++i)scanf("%lld",&a[i]);
	for(long long i=1;i<=m2;++i)scanf("%lld",&b[i]);
	sort(a+1,a+1+m1),sort(b+1,b+1+m2);
	for(long long i=1;i<=n;i++){
		long long minn=INT_MAX,id=0;
		for(long long j=1;j<=m1;j++)if(a[j]+t[j]<=minn)minn=a[j]+t[j],id=j;
		t[id]+=a[id],tt[i]=t[id];
	}
	for(long long i=1;i<=m1;i++)ans=max(ans,t[i]);
	printf("%lld ",ans),ans=0,memset(t,0,sizeof(t)),sort(tt+1,tt+1+n);
	for(long long i=1;i<=n;i++){
		long long minn=INT_MAX,id=0;
		for(long long j=1;j<=m2;j++)if(b[j]+max(t[j],tt[i])<=minn)minn=b[j]+max(t[j],tt[i]),id=j;
		t[id]=b[id]+max(t[id],tt[i]);
	}
	for(long long i=1;i<=m2;i++)ans=max(ans,t[i]);
	printf("%lld ",ans);
	return 0;
}
2021/8/9 10:02
加载中...