結果
問題 | No.330 Eigenvalue Decomposition |
ユーザー |
|
提出日時 | 2015-12-25 19:54:17 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 578 ms / 5,000 ms |
コード長 | 2,664 bytes |
コンパイル時間 | 3,827 ms |
コンパイル使用メモリ | 78,536 KB |
実行使用メモリ | 60,960 KB |
最終ジャッジ日時 | 2024-09-18 23:59:31 |
合計ジャッジ時間 | 12,096 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 31 |
ソースコード
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintStream;import java.io.PrintWriter;import java.util.Arrays;import java.util.Iterator;public class Main_yukicoder330 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);Printer pr = new Printer(System.out);int n = sc.nextInt();int m = sc.nextInt();UnionFind uf = new UnionFind(n);for (int i = 0; i < m; i++) {int a = sc.nextInt() - 1;int b = sc.nextInt() - 1;@SuppressWarnings("unused")int c = sc.nextInt();uf.union(a, b);}pr.println(uf.count());pr.close();sc.close();}@SuppressWarnings("unused")private static class UnionFind {int[] parent;int[] rank;UnionFind(int n) {parent = new int[n];rank = new int[n];for (int i = 0; i < n; i++) {parent[i] = i;rank[i] = 0;}}int find(int x) {if (parent[x] == x) {return x;} else {return parent[x] = find(parent[x]);}}boolean same(int x, int y) {return find(x) == find(y);}void union(int x, int y) {x = find(x);y = find(y);if (x != y) {if (rank[x] > rank[y]) {parent[y] = x;} else {parent[x] = y;if (rank[x] == rank[y]) {rank[y]++;}}}return;}// 異なる集合の数int count() {int ret = 0;for (int i = 0; i < parent.length; i++) {if (find(i) == i) {ret++;}}return ret;}}@SuppressWarnings("unused")private static class Scanner {BufferedReader br;Iterator<String> it;Scanner (InputStream in) {br = new BufferedReader(new InputStreamReader(in));}String next() throws RuntimeException {try {if (it == null || !it.hasNext()) {it = Arrays.asList(br.readLine().split(" ")).iterator();}return it.next();} catch (IOException e) {throw new IllegalStateException();}}int nextInt() throws RuntimeException {return Integer.parseInt(next());}long nextLong() throws RuntimeException {return Long.parseLong(next());}float nextFloat() throws RuntimeException {return Float.parseFloat(next());}double nextDouble() throws RuntimeException {return Double.parseDouble(next());}void close() {try {br.close();} catch (IOException e) {// throw new IllegalStateException();}}}private static class Printer extends PrintWriter {Printer(PrintStream out) {super(out);}}}