#3AC其它全WA求助!
查看原帖
#3AC其它全WA求助!
1126325
Indestructible楼主2024/1/23 15:41

贪心+并查集

#include<bits/stdc++.h>
using namespace std;
struct Node{
    int x,y,t;
}node[110000];
int father[1100];
int n,m,i;
bool cmp(Node x,Node y){
    return x.t<y.t;
}
bool isfinish(){
    int ans=0;
    for (int k=1;k<=n;k++){
        if (father[k]==k) ans++;
        if (ans>1) return false;
    }
    return ans;
}
int find(int x){
    if (x!=father[x]) father[x]=find(father[x]);
    return father[x];
}
void add(int x,int y){
    x=find(x),y=find(y);
    if (x!=y) father[x]=y;
}
int main(){
    scanf("%d%d",&n,&m);
    for (i=1;i<=n;i++) father[i]=i;
    for (i=1;i<=m;i++)
        scanf("%d%d%d",&node[i].x,&node[i].y,&node[i].t);
    sort(node+1,node+n+1,cmp);
    for (i=1;i<n;i++) add(node[i].x,node[i].y);
    while (!isfinish() && i<=m) add(node[i].x,node[i].y),i++;
    if (i>m) printf("-1");
    else printf("%d",node[i-1].t);
    return 0;
}
2024/1/23 15:41
加载中...