这都能过???请问为什么呀
查看原帖
这都能过???请问为什么呀
324181
CisKuhn楼主2021/7/27 16:34

???

#include<bits/stdc++.h>
using namespace std;
int maxx=-1,fa[100101],n,m,k=0;
struct node{
	int u,v,w;
}r[200011];
int find(int x){
	if(fa[x]!=x)fa[x]=find(fa[x]);
	return fa[x];
}
bool cmp(node a,node b){
	return a.w<b.w;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>r[i].u>>r[i].v>>r[i].w;
	}
	int ans=0;
	for(int i=1;i<=n;i++)fa[i]=i;
	sort(r+1,r+m+1,cmp);
	int ff=find(1);

	for(int i=1;i<=m;i++){
		if(find(r[i].u)!=find(r[i].v)){
			fa[find(r[i].v)]=find(r[i].u);
			ans+=r[i].w;
		}
		if(k==n-1)break;
	}
	int cnt=0;
	for(int i=1;i<=n;i++){
		if(find(i)==i){
			cnt++;
		}
		if(cnt>1){
			cout<<"orz";
			return 0;
		}
	}	
	cout<<ans;
}

我k都没用啊??为什么过了???

2021/7/27 16:34
加载中...