求助
查看原帖
求助
213107
hpcwdclcx楼主2020/7/7 20:57

为什么有九个点RE了呢

#include<bits/stdc++.h>
using namespace std;
int n,m,fa[1000010],cnt,k,ans;
struct edge
{
	int u,v,w;
}e[1001000];
void adde(int u,int v,int w)
{
	e[++cnt].u=u;
	e[cnt].v=v;
	e[cnt].w=w;
}
bool cmp(const edge &a,const edge &b)
{
	return a.w<b.w;
}
int find(int x)
{
	if(fa[x]==x)return fa[x];
	else fa[x]=find(fa[x]);
}
void bing(int x,int y)
{
	x=find(x);
	y=find(y);
	if(x!=y)fa[x]=y;
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)fa[i]=i;
	for(int i=1;i<=m;i++)
	{
		int a,b,c;
		cin>>a>>b>>c;
		adde(a,b,c);
	}
	sort(e+1,e+m+1,cmp);
	for(int i=1;i<=m;i++)
	{
		if(find(e[i].u)!=find(e[i].v))
		{
			bing(e[i].u,e[i].v);
			ans=e[i].w;
			k++;
		}
		if(k==n-1)break;
	}
	cout<<ans<<endl;
	return 0;
}

违规自删

2020/7/7 20:57
加载中...