为什么RE了
查看原帖
为什么RE了
800584
yxq5253楼主2023/3/24 18:00
#include <bits/stdc++.h>
using namespace std;

const int N=1010,M=100010;
int p[N];
int n,m;

struct road
{
	int st;
	int ed;
	int dist;
    bool operator <(const road &W)const
    {
    	return dist<W.dist;
	}
}road[N];

int find(int x)//查寻祖宗节点 
{
   if(x!=p[x]) p[x]=find(p[x]);
    return p[x];
}

bool check()//检查是否连同
{
	int f=find(1);
	for(int i=1;i<=n;i++)
	{
		if(find(i)!=f) return false;
	}
    return true;
 } 
 
 void Merge(int x,int y)
{
    int a=find(x);
    int b=find(y);
    p[a]=b;
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++) p[i]=i;
	
	for(int i=1;i<=m;i++)
		cin>>road[i].st>>road[i].ed>>road[i].dist;
		
		sort(road+1,road+m+1);
		
		int res=-1;
		for(int i=1;i<=m;i++)
		{
			 Merge(road[i].ed,road[i].st);
			if(check()) 
			{
			  res=road[i].dist;
			  break;
			}
		}
		cout<<res;
	return 0;
}


2023/3/24 18:00
加载中...