玄关,求调
查看原帖
玄关,求调
1079531
lcycl楼主2024/7/25 16:50
#include<bits/stdc++.h>
using namespace std;
bool vis[11451];
int a[11451][11451];
int num[11451];
int sum; 
int main() {
	int n,nb,m;
	cin>>n>>m>>sb;
    if(n==nb){
        cout<<0;
        return 0;
    }
	for(int i=1;i<=m;i++){
		int x,y,z;
		cin>>x>>y>>z;
		a[x][y]=a[x][y]==0?z:min(z,a[x][y]);
		a[y][x]=a[y][x]==0?z:min(z,a[y][x]);
	}
	memset(num,0x7f,sizeof(num));
	num[1]=0;
	for(int i=1; i<=m; i++) {
		int k=0;
		for(int j=1;j<=m;j++){
			if(!vis[j]&&num[j]<num[k]) k=j;
		}
		if(k==0) continue;
		vis[k]=1;
		for(int j=1;j<=m;j++){
			if(!vis[j]&&a[k][j]<num[j]&&a[k][j]!=0) num[j]=a[k][j];
		}
	}
	sort(num+1,num+n+1);
	for(int i=1;i<=n-nb+1;i++) sum+=num[i];
	cout<<sum;
	return 0;
}

50pts(名字被别人改了QWQ)

2024/7/25 16:50
加载中...