0 分全 WA 求助
查看原帖
0 分全 WA 求助
764773
AstaVenti_楼主2024/1/24 20:12
#include<bits/stdc++.h>
using namespace std;
struct edge{
	int u,v,w;
}e[1005];
bool cmp(edge a,edge b){
	return a.w<b.w;
}
int fa[1005],ans=0,k=0;
int a,b,xx,yy,zz;
int find(int x){
	return x==fa[x]?x:fa[x]=find(fa[x]);
}
void p(int xx,int yy,int zz){
	e[k].u=xx,e[k].v=yy,e[k].w=zz;
}
void q(int x,int y){
	if(find(x)!=find(y))fa[find(x)]=find(y);
	k++;
}
void K(){
	sort(e,e+b,cmp);
	for(int i=0;i<b;i++)fa[i]=i;
	for(int i=0;i<b;i++){
		int u=find(e[i].u),v=find(e[i].v);
		if(u!=v){
			ans+=e[i].w;
			q(u,v);
		}
	}
}
int main(){

	cin>>a>>b;
	for(int i=0;i<b;i++){
		for(int j=0;j<b;j++){
			cin>>xx;
			if(xx<a&&xx!=0){
				p(i,j,xx);
			}	
		}
	}
	if(k==b-1)cout<<ans+a;
	else cout<<ans+(b-k)*a; 
}
2024/1/24 20:12
加载中...