dalao求助,java8号点mle了
查看原帖
dalao求助,java8号点mle了
879396
zzf12345666楼主2023/3/22 17:23
import java.util.*;
public class Main {
    static int N=200010;
    static int []p=new int[N];
    static bian[] edge=new bian[N];
    static int sum,cnt,n,m;
    public static void main(String[] args) {
        Scanner in =new Scanner(System.in);
        n=in.nextInt();
        m=in.nextInt();
        for(int i=0;i<n;i++){
            p[i]=i;
        }
      for(int i=0;i<m;i++){
          edge[i]=new bian(in.nextInt(),in.nextInt(),in.nextInt());
      }
        Arrays.sort(edge,0,m);
        if(kruasl()){
             System.out.println(sum);
        }
        else {
            System.out.println("orz");
        }
    }
    static boolean kruasl(){
        for(int i=0;i<m;i++) {
            int x=edge[i].a;
            int y=edge[i].b;
            int w=edge[i].w;
            x=find(x);y=find(y);
            if(x!=y){
                p[x]=y;
                sum+=w;
                cnt++;
            }
        }
        if(cnt<n-1){
            return false;
        }
        else {
            return true;
        }
    }
    static int find(int u){
        if(p[u]==u){
            return u;
        }
        else {
            p[u]=find(p[u]);
            return p[u];
        }
    }
}
class bian implements Comparable<bian>{
    int a;
    int b;
    int w;
    public bian(int a,int b,int w){
        this.a=a;
        this.b=b;
        this.w=w;
    }
    public int compareTo(bian j){
        return this.w-j.w;
    }
}

2023/3/22 17:23
加载中...