并查集,数据点2TLE,蒟蒻求调
查看原帖
并查集,数据点2TLE,蒟蒻求调
786210
wanghq123楼主2024/8/20 10:12
#include<bits/stdc++.h>
using namespace std;
int n,m;
int f[1005];

struct node{
	int x,y,t;
}mp[100005];

int cmp(node x,node y){
	return x.t<y.t;
}

int find(int x){
	if(f[x]==x) return x;
	else return find(f[x]);
}

bool jc(){
	int k=find(1);
	if(k==1) return 0;
	for(int i=2;i<=n;i++)
		if(find(i)!=k) return 0;
	return 1;
}

int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++) f[i]=i;
	int nt=n;
	for(int i=1;i<=m;i++)
		cin>>mp[i].x>>mp[i].y>>mp[i].t;
	sort(mp+1,mp+1+m,cmp);
	int T=mp[1].t;
	for(int i=1;i<=m;i++){
		if(mp[i].t!=T)
			if(jc()){
				cout<<T;
				return 0;
			}
			else T=mp[i].t;
		int u,w;
		u=find(mp[i].x);
		w=find(mp[i].y);
		if(u!=w) f[u]=w;
	}
	cout<<-1;
	return 0;
}
2024/8/20 10:12
加载中...