求助!!为什么只能过第一个!爆RE
查看原帖
求助!!为什么只能过第一个!爆RE
274208
bingnoi楼主2020/10/15 12:01
#include<bits/stdc++.h>
using namespace std;
struct in{
    int start,end_point,time;
}line[200010];
int cmp(in a,in b)
{
    return a.time<b.time;
}
int father[200010];
int fatherfind(int k)
{
    if(father[k]==k)
        return k;
    else father[k]=fatherfind(father[k]);
}
int main()
{
    //freopen("test.txt","r",stdin);
    int town,linenum;
    cin>>town>>linenum;
    for(int m=1;m<=linenum;m++)
        cin>>line[m].start>>line[m].end_point>>line[m].time;
    sort(line+1,line+linenum+1,cmp);
    //printf("%d,%d,%d,%d\n",line[1].time,line[2].time,line[3].time,line[4].time);
    for(int m=1;m<=town;m++)
        father[m]=m;
    for(int m=1;m<=linenum;m++)
    {
        int a=fatherfind(line[m].start);
        int b=fatherfind(line[m].end_point);
        if(a!=b)
        {
            father[a]=b;
            town--;
        }
        if(town==1)
        {
            printf("%d",line[m].time);
            return 0;
        }
        printf("%d,town:%d\n",m,town);
    }
    printf("-1");
    return 0;
}

2020/10/15 12:01
加载中...