英语四六级系列(一)
  z797zFE4S4a9 2023年11月02日 53 0


英语四六级系列(一)

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

众所周知,英语四六级考试有几套不同的试卷,而且,为了防止我们抄袭旁边同学的,一般附近同学的试卷和你的试卷不一样。但是,我们还是知道了一些同学的试卷是相同的,假设有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

提示

 

来源

xj

示例程序

#include<stdio.h>
#include<string.h>
int n,bin[100001],a[100001];
int m,t;
int find3(int x)
{
    int r = x;
    while(bin[r]!=r)
        r = bin[r];
    int i = x;
    while(i!= r)
    {
       t = bin[i];
       bin[i] = r;
       i = t;
    }
    return r;
}
void bing(int x,int y)
{
    int fx,fy;
    fx = find3(x);
    fy = find3(y);
    if(fx != fy)
    {
        bin[fx] = fy;
    }
}
int main()
{
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        memset(a,0,sizeof(a));
        int x,y;
        int i;
        for(i=0;i<n;i++)
        {
            bin[i] = i;
        }
        for(i=m;i>0;i--)
        {
            scanf("%d%d",&x,&y);
            bing(x,y);
        }
        for(i=0;i<n;i++)
         {
             a[find3(i)]++;
         }
         //for(i=0;i<n;i++)
        // {
             printf("%d\n",a[find3(0)]-1);
        // }
    }
    return 0;
}

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

z797zFE4S4a9
最新推荐 更多

2024-05-31