求助 P1194 WA79分
  • 板块题目总版
  • 楼主hhklxq
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/8/8 16:29
  • 上次更新2023/11/3 05:10:16
查看原帖
求助 P1194 WA79分
690631
hhklxq楼主2023/8/8 16:29
#include<bits/stdc++.h>
using namespace std;
int n,m;
struct node{
	int u,v,w;
	bool operator<(const node&a)const{
		return w<a.w;
	}
}e[10100];
int prt[10100];
void chushi(){
	for(int i=1;i<=m;++i)prt[i]=i;
} 
int find(int s){
	if(prt[s]==s)return s;
	else return prt[s]=find(prt[s]);
}
int len=0;
void read(){
	scanf("%d%d",&n,&m);
	chushi();
	for(int i=1;i<=m;++i){
		for(int j=1;j<=m;++j){
			int x;
			scanf("%d",&x);
			if(x==0)x=n;
			if(i<j)e[++len]={i,j,x};
			if(i==j)e[++len]={i,j,n};
		}
	}
	sort(e+1,e+len+1);
	if(m==1){
		printf("%d",n);
		exit(0);
	}
}
void kru(){
	int cnt=0,res=n;
	for(int i=1;i<=len;++i){
		int u=e[i].u,v=e[i].v,w=e[i].w;
		if(find(u)!=find(v)||u==v){
			prt[find(u)]=prt[find(v)];
			cnt++;
			res+=w;
			if(cnt==m-1){
				printf("%d",res);
				exit(0);
			}
		}
	}
}
int main(){
	read();
	kru();
	return 0;
}
2023/8/8 16:29
加载中...