728x90
import java.util.Arrays;
import java.util.Scanner;
import java.io.FileInputStream;
class Solution
{
public static void main(String args[]) throws Exception
{
System.setIn(new FileInputStream("sample_input.txt"));
Scanner sc = new Scanner(System.in);
int T;
T=sc.nextInt();
for(int test_case = 1; test_case <= T; test_case++)
{
long answer = 0;
int V = sc.nextInt();
int E = sc.nextInt();
int[] parents = new int[V+1];
Line[] lines = new Line[E];
for (int i = 0; i < E; i++) {
lines[i] = new Line(sc.nextInt(), sc.nextInt(), sc.nextInt());
}
for (int i = 1; i <= V; i++) {
parents[i] = i;
}
Arrays.sort(lines);
int count=0;
for (Line line : lines) {
int a = findParent(parents,line.a);
int b = findParent(parents,line.b);
if(a!=b) {
unionParent(parents,a,b);
count++;
answer+=line.cost;
}
if(count==V-1) break;
}
System.out.printf("#%d %d\n",test_case,answer);
}
}
private static void unionParent(int[] parents, int a, int b) {
if(a<b) {
parents[b]=a;
}
else parents[a]=b;
}
private static int findParent(int[] parents, int x) {
if(parents[x]!=x) {
parents[x] =findParent(parents, parents[x]);
}
return parents[x];
}
}
class Line implements Comparable<Line>{
int a;
int b;
int cost;
public Line(int a, int b, int cost) {
super();
this.a = a;
this.b = b;
this.cost = cost;
}
@Override
public int compareTo(Line o) {
// TODO Auto-generated method stub
return this.cost - o.cost;
}
}
728x90
'알고리즘 > SW Expert' 카테고리의 다른 글
SW Expert 보급로 (자바) (0) | 2021.09.30 |
---|---|
SW expert 사람 네트워크2 (자바) (0) | 2021.09.16 |
SW Expert 3307 최장 증가 부분수열 (자바) (0) | 2021.09.16 |
1251 하나로 (0) | 2021.08.25 |