我是服了,第一个点没过,后面的过了
查看原帖
我是服了,第一个点没过,后面的过了
1043309
rqliushuangyu楼主2024/11/10 16:26
#include<bits/stdc++.h>
using namespace std;
//无方,暴力
//只有两种状态:挖,不挖,每个尝试。 
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	int n;
//	freopen("water.in","r",stdin);
//	freopen("water.out","w",stdout);
	cin>>n;
	int w[n+1];
	int p[n+1][n+1];
	bool yong[n+1];
	for(int i=1;i<=n;i++){
		cin>>w[i];
	}
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			cin>>p[i][j];
	int ans=0;
	for(int i=1;i<=n;i++){
		int mi=200000,vid=0;
		for(int j=1;j<=n;j++)//最小的那个必然无法更小,故直接选了。	
			if(!yong[j] && w[j]<mi) vid=j,mi=w[j];
		ans+=mi;yong[vid]=1;
		for(int j=1;j<=n;j++)//看看是否能让其他位置的田的费用更少(用mi改) 
			if(!yong[j] && w[j]>p[vid][j]) w[j]=p[vid][j];
	}
	cout<<ans;
	return 0;
}
2024/11/10 16:26
加载中...