一道算法题,算法好或者搞ACM的童鞋看过来~

1个回答

  • 你好,我已经ac了,下面是ac代码

    思路就是简单并查集

    41549wujianan20071012Accepted32148 kb1060 msJava/Edit2012-02-01 00:05:46

    import java.math.*;

    import java.io.*;

    import java.util.*;

    import java.lang.*;

    public class Main {

    public static int father[] = new int[1005];

    public static int getFather(int x) {

    int ret = x;

    while (ret != father[ret]) {

    father[ret] = father[father[ret]];

    ret = father[ret];

    }

    return ret;

    }

    public static void union(int a, int b) {

    father[getFather(b)] = father[getFather(a)];

    }

    public static void main(String[] args) {

    Scanner cin = new Scanner(System.in);

    int n, m;

    while (true) {

    n = cin.nextInt();

    if (n == 0) {

    break;

    }

    for (int i = 1; i 0) {

    int a, b;

    a = cin.nextInt();

    b = cin.nextInt();

    union(a, b);

    m--;

    }

    boolean t[] = new boolean[1005];

    int cnt = 0;

    for (int i = 1; i