zoukankan      html  css  js  c++  java
  • [TYVJ] P1017 冗余关系

    冗余关系

    背景 Background
    太原成成中学第3次模拟赛 第4题
     
    描述 Description
    Mrs.Chen是一个很认真很称职的语文老师 ......
    所以,当她看到学生作文里的人物关系描述得非常的麻烦的时候,她非常生气,于是宣布:凡是作文里有冗余关系的,一率罚抄出师表10次...同学们非常的恐惧,于是,每当他们写出一篇作文,都要拿来你这个语文兼OI天才这里,问你有没有冗余的关系 ...... 时间一久,你也烦了,于是就想写个程序来代劳 ...

    现在这里有一篇作文,有n句描述人物关系的句子,描述了n个人的关系
    每条句子的定义是这样的
    X Y
    它的意思是:X认识Y Y也认识X

    现在要你求出文中冗余关系的数目.

    注意: 假如A认识B,B认识C,则A也认识C

    冗余关系的定义是指 : 即使没有这条关系,原图的所有关系照样成立.
     
    输入格式 InputFormat
    第一行,两个整数,表示句子数量(n),表示人数(m)。
    接下来n行,每行两个数,意义在描述里已经说了. 
     
    输出格式 OutputFormat
    一个整数,表示冗余关系的数目.
     
    样例输入 SampleInput [复制数据]

    3 3
    1 2
    1 3
    2 3

    样例输出 SampleOutput [复制数据]

    1

    数据范围和注释 Hint
    1<=n,m<=1000
     
    题解:并查集模板题。
     
    代码:
     1 #include<stdio.h>
     2 #include<string.h>
     3 int i,j,n,m,sum,father[10000];
     4 
     5 int
     6 pre(void)
     7 {
     8     memset(father,0,sizeof(father));
     9     sum=0;
    10 }
    11 
    12 int 
    13 find(int t)
    14 {
    15     int f;
    16     f=t;
    17     while(father[f]!=0)
    18     f=father[f];
    19  
    20     return(f);
    21 }
    22 
    23 void
    24 unionxy(int x,int y)
    25 {
    26     x=find(x);
    27     y=find(y);
    28     if (x!=y) father[x]=y;
    29     else sum++;
    30     return;
    31 }
    32 
    33 int
    34 main(void)
    35 {
    36     int x,y;
        pre();
    37 scanf("%d%d ",&n,&m); 38 for(i=1;i<=n;i++) 39 { 40 scanf("%d%d",&x,&y); 41 unionxy(x,y); 42 } 43 printf("%d ",sum); 44 return 0; 45 } 46 47
     
  • 相关阅读:
    sql server中的左连接与右连接的简便写法
    SQL中CONVERT()转化函数的用法 字符串转日期
    Asp.net MVC 中Controller返回值类型ActionResult
    一探前端开发中的JS调试技巧
    String trim 坑 对于ascii码为160的去不掉
    SQL小练习
    Java运行时异常和非运行时异常
    java 子类不能继承父类的static方法
    Java中的类加载器
    搞懂head 和 tail 命令
  • 原文地址:https://www.cnblogs.com/sxiszero/p/3604053.html
Copyright © 2011-2022 走看看