RE*9?!
查看原帖
RE*9?!
801051
Wolves_487楼主2024/7/20 20:13

救救蒟蒻,第一次遇到这种,数组大小也够,怎么回事 记录

#include <bits/stdc++.h>
#define life Elaina
#define angle Exusiai
using namespace std;
const int N =  1e5 + 10;
int n, m;
struct node{
  int a,b,c;
}data[N];
int fa[N];
int f[N];
bool cmp(node p,node q)
{
  return p.c>q.c;
}
int find(int x){return x==fa[x]?x:fa[x]=find(fa[x]);}
int Union(int x,int y){
  int p=find(x),q=find(y);
  fa[p]=q;
}
bool Query(int x,int y){
  int p=find(x),q=find(y);
  if(p==q) return true;
  return false;
}
signed main() {
  cin>>n>>m;
  for(int i=0;i<=n;i++)
    fa[i]=i;
  for(int i=1;i<=m;i++)
  {
  	cin>>data[i].a>>data[i].b>>data[i].c;
  	
  }
  sort(data+1,data+m+1,cmp);
  for(int i=1;i<=m+1;i++)
  {
  	if(Query(data[i].a,data[i].b)) {
  		cout<<data[i].c;
  		return 0;
  	}
  	else{
  		if(!f[data[i].b]) f[data[i].b]=data[i].a;
  		else Union(f[data[i].b],data[i].a);
  		if(!f[data[i].a]) f[data[i].a]=data[i].b;
  		else Union(f[data[i].a],data[i].b);
  	}
  }
  return 0;
}
2024/7/20 20:13
加载中...