代码如下
#include<bits/stdc++.h>
using namespace std;
const int maxn=20009;
const int maxm=200019;
int n,m,fa[maxn],enemy[maxn];
struct edge
{
int a,b,w;
}p[maxm];
bool cmp(edge x,edge y)
{
return x.w>y.w;
}
int find(int k)
{
return k==fa[k]?k:find(fa[k]);
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
freopen("1.txt","r",stdin);
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>p[i].a;
cin>>p[i].b;
cin>>p[i].w;
}
for(int i=1;i<=n;i++)fa[i]=i;
sort(p+1,p+1+m,cmp);
for(int i=1;i<=m;i++)
{
int t1=find(p[i].a);
int t2=find(p[i].b);
if(t1==t2)
{
cout<<p[i].w;
return 0;
}
if(!enemy[p[i].a])enemy[p[i].a]=p[i].b,enemy[p[i].b]=p[i].a;
else fa[find(p[i].a)]=find(p[i].b),fa[find(p[i].b)]=find(p[i].a);
}
cout<<"0";
return 0;
}
连样例都过不了,样例输入3512,而我输出1805,有人能帮我看看吗、