10分求助
查看原帖
10分求助
566190
我是歌者楼主2024/10/15 19:30

这题是不是加强数据了。

#include<bits/stdc++.h>
#define N 1e6+10
using namespace std;
long long int arr[200019],err[200019];
struct node{
	long long int a,b,c;
}a[200019];
bool cmp(node a,node b){
	return a.c>b.c;
}
long long int find(long long int k){
	if(arr[k]==k) return k;
    return arr[k]=find(arr[k]);
}

int add(int x,int y){
	x=find(arr[x]);
    y=find(arr[y]);
    arr[x]=y;
}
int n,m;
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++) arr[i]=i;
	for(int i=1;i<=m;i++){
		cin>>a[i].a>>a[i].b>>a[i].c;
	}
	sort(a+1,a+m+1,cmp);
	for(int i=1;i<=m;i++){
		int t1=find(a[i].a),t2=find(a[i].b);
		if(t1==t2){
			cout<<a[i].c;
			return 0;
		}
		else{
			if(!err[a[i].a]) err[a[i].a]=a[i].b;
            else {
				add(err[a[i].a],a[i].b);
			}
            if(!err[a[i].b]) err[a[i].b]=a[i].a;
            else {
				add(err[a[i].b],a[i].a);
			}
		}
	}
	cout<<0;
	return 0;
}
2024/10/15 19:30
加载中...