zoukankan      html  css  js  c++  java
  • 并查集----(1)

    题目描述

    众所周知,英语四六级考试有几套不同的试卷,而且,为了防止我们抄袭旁边同学的,一般附近同学的试卷和你的试卷不一样。但是,我们还是知道了一些同学的试卷是相同的,假设有n个同学,编号为0~n-1,你的编号为0,,根据我们已知的信息,求还有多少人的试卷和你的试卷是相同的。

    输入

    多组输入,每组第一行,有两个整数n,m(2 <= n <= 100000, 0 <= m <= 10000),代表n个同学,m条我们已知的信息。
    接下来m行,每行有两个整数a,b(0 <= a,b <= n-1)。
    代表a同学和b同学的试卷是相同的。

    输出

    每组输出一行,输出和你的试卷相同的同学的个数。

    示例输入

    5 2
    0 1
    1 2
    5 2
    1 2
    2 3

    示例输出

    2
    0
    #include<stdio.h>
    int bin[100002];
    int find(int x)
    {
        int r = x;
        while(bin[r] != r)
            r = bin[r];
    
        int j;
        while( r != x)
        {
            j = bin[x];
            bin[x] = r;
            x = j;
        }
        return r;
    }
    void merge(int x, int y)
    
    {
        int fx, fy;
        fx = find(x);
        fy = find(y);
        if(fx != fy && fx < fy)
            bin[fy] = fx;
        else if(fx != fy && fx > fy)
            bin[fx] = fy;
    
    }
    int main()
    {
        int n, m, a, b, i, count = 0;
         while(~scanf("%d %d", &n, &m))
         {
             count = 0;
             for(i=0; i<n; i++)
                 bin[i] = i;
             for(i=0; i<m; i++)
             {
                 scanf("%d %d", &a, &b);
                 merge(a, b);
             }
             for(i = 1; i < n; i++)
             {
                 if(find(bin[0]) == find(bin[i]))
                {
                    count++;
                }
             }
             printf("%d
    ", count);
         }
         return 0;
    }
    
    注意:1. 今天交了三遍啊,RE了, 想来想去应该没错啊,注意了路径压缩。。。。。最后忽然想起来,看了看n的范围,瞬间石化了,原来我的数组开小了。。所以在这里说一下避免重蹈覆辙,
    Runtime Error
    你的程序发生了运行时错误。可能是由于除以0、数组越界或指针访问出错等运行时问题。
    
       2. 今天学会路径压缩,加油!!!


     

    每天训练发现我比别人做的好慢,但是理解的更深刻,如果一开始学一个新知识点就搜模板,那么这样的人是走不远的,毕业之后带走的只有思维,什么荣誉,奖杯都已经不重要了。
  • 相关阅读:
    集训队日常训练20180518-DIV1
    集训队日常训练20180513-DIV1
    python类的使用与多文件组织
    性能指标
    python调用.so
    动态链接库的使用
    python读写xml文件
    使用python读取文本中结构化数据
    python画图
    numpy及scipy的使用
  • 原文地址:https://www.cnblogs.com/6bing/p/3931270.html
Copyright © 2011-2022 走看看