pst10,求调
查看原帖
pst10,求调
979656
Sgt_Dante楼主2023/7/24 18:34
#include <bits/stdc++.h>
using namespace std;
int sum[4],all_more=0,all_c2=0,ans[4]={1000000,1000000,1000000,1000000},cost[100086][4];
bool is_choose[100086][4];
int dfs(int a,int number,int ccos){
	if(number>=sum[a]){
		return ccos;
	}
    for(int i=0;i<sum[a];i++){
    	if(is_choose[i][a]==0){
    		is_choose[i][a]=1;
    		ans[a]=min(dfs(a,number+1,abs(ccos-cost[i][a])),ans[a]);
    		is_choose[i][a]=0;;
		}
	} 
}
int main(){
	cin>>sum[0]>>sum[1]>>sum[2]>>sum[3];
	for(int i=0;i<4;i++){
		for(int j=0;j<sum[i];j++){
			cin>>cost[j][i];
			all_c2+=cost[j][i];
		}
		if(sum[i]==1){
			ans[i]=cost[0][i];
		}
		dfs(i,0,0);
	}
	ans[0]+=ans[1]+ans[2]+ans[3];
	cout<<(all_c2+ans[0])/2;
	return 0;
} 
2023/7/24 18:34
加载中...