并查集爆栈求助
查看原帖
并查集爆栈求助
105865
Jur_Cai楼主2020/7/28 22:42
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
struct crime {
	int a,b,c;
} a[100001];
inline bool cmp(crime x,crime y) {
	return x.c>y.c;
}
int f[20001];
int find(int x)
{
	if(f[x]==0) return x;
	return f[x]=find(f[x]);
}
int e[20001];
int main() {
	int n,m;
	scanf("%d%d",&n,&m);
	for(int i=1; i<=m; i++)
		scanf("%d%d%d",&a[i].a,&a[i].b,&a[i].c);
	sort(a+1,a+m+1,cmp);
	for(int i=1;i<=m;i++)
	{
		if(find(a[i].a)==find(a[i].b))
		{
			printf("%d",a[i].c);
			return 0;
		}
		else
		{
			if(e[a[i].a]==0) e[a[i].a]=a[i].b;
			else
			{
				int x=find(e[a[i].a]);
				int y=find(a[i].b);
				f[x]=y;
			}
			if(e[a[i].b]==0) e[a[i].b]=a[i].a;
			else
			{
				int x=find(e[a[i].b]);
				int y=find(a[i].a);
				f[x]=y;
			}
		}
	}
	printf("0");
	return 0;
}

4个点MLE了,有没大佬帮忙改一下QwQ

2020/7/28 22:42
加载中...