1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int f[], g[];
  5.  
  6. int find(int x) //并查集的查找,找到共同的父亲
  7. {
  8. if (f[x] != x)
  9. f[x] = find(f[x]);
  10. return f[x];
  11. }
  12.  
  13. int main()
  14. {
  15. int a, b, tt = ;
  16. while (scanf("%d%d", &a, &b) != EOF)
  17. {
  18. int i, flag = , t = ;
  19. if (a< && b<)
  20. break;
  21. for (i = ; i <= ; i++)
  22. f[i] = i;
  23.  
  24. //合并
  25. if (find(a) == find(b))
  26. flag = ;
  27. else
  28. f[find(b)] = find(a);
  29.  
  30. while (scanf("%d%d", &a, &b))
  31. {
  32. if (a == && b == )
  33. break;
  34. int aa, bb;
  35. aa = find(a);
  36. bb = find(b);
  37. //合并
  38. if (aa == bb || bb != b) //成环就不是树,后面的是检查是否有两个父节点
  39. flag = ;
  40. else
  41. f[bb] = aa;
  42. }
  43.  
  44. memset(g, , sizeof(g));
  45. for (i = ; i <= ; i++) //保证只有一个根,不然就是森林了
  46. if (f[i] != i)
  47. g[find(i)]++;
  48. for (i = ; i <= ; i++) //检查是否只有一个头结点就是了
  49. if (g[i]>)
  50. t++;
  51. if (t>)
  52. flag = ;
  53. if (flag == )
  54. printf("Case %d is not a tree.\n", tt++);
  55. else
  56. printf("Case %d is a tree.\n", tt++);
  57. }
  58. return ;
  59. }

hdu1325 Is It A Tree? 基础并查集的更多相关文章

  1. POJ1308/HDU1325/NYOJ129-Is It A Tree?,并查集!

    Is It A Tree? Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 28838   Accepted: 9843 -& ...

  2. HDU1325 Is It A Tree? 【并查集】

    Is It A Tree? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  3. hdu 1829 基础并查集,查同性恋

    A Bug's Life Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To ...

  4. 【BZOJ2959】长跑(Link-Cut Tree,并查集)

    [BZOJ2959]长跑(Link-Cut Tree,并查集) 题面 BZOJ 题解 如果保证不出现环的话 妥妥的\(LCT\)傻逼题 现在可能会出现环 环有什么影响? 那就可以沿着环把所有点全部走一 ...

  5. poj-2236 Wireless Network &&poj-1611 The Suspects && poj-2524 Ubiquitous Religions (基础并查集)

    http://poj.org/problem?id=2236 由于发生了地震,有关组织组把一圈电脑一个无线网,但是由于余震的破坏,所有的电脑都被损坏,随着电脑一个个被修好,无线网也逐步恢复工作,但是由 ...

  6. Is It A Tree?(并查集)

    Description A tree is a well-known data structure that is either empty (null, void, nothing) or is a ...

  7. POJ1308:Is It A Tree?(并查集)

    Is It A Tree? 题目链接:http://poj.org/problem?id=1308 Description: A tree is a well-known data structure ...

  8. Codeforces 915F Imbalance Value of a Tree(并查集)

    题目链接  Imbalance Value of a Tree 题意  给定一棵树.求树上所有简单路径中的最大权值与最小权值的差值的和. 首先考虑求所有简单路径中的最大权值和. 对所有点按照权值大小升 ...

  9. HDU4496 D-City【基础并查集】

    Problem Description Luxer is a really bad guy. He destroys everything he met.  One day Luxer went to ...

随机推荐

  1. Distributed Management Task Force----分布式管理任务组

    http://baike.baidu.com/link?url=Y9HGLs8Qj6pXbbgY6xPdfiGDsQO8Eu1e80B4giQtQ_hAfGNF59byxnLoERYri4Duw7Gw ...

  2. 关于CAShapeLayer

    关于CAShapeLayer 内容大纲: CAShapeLayer简介 贝塞尔曲线与CAShapeLayer的关系 strokeStart和strokeEnd 动画 用CAShapeLayer实现进度 ...

  3. Express:模板引擎深入研究

    深入源码 首先,看下express模板默认配置. view:模板引擎模块,对应 require('./view'),结合 res.render(name) 更好了解些.下面会看下 view 模块. v ...

  4. hadoop shuffle

    1 hadoop shuffle的地位 hadoop  shuffle是map reduce算法的核心,是它连接了多个map和多个reduce,它将map的输出交给reduce作为输入. 2 hado ...

  5. Java中数组复制的几种方式以及数组合并

    1.Object.clone() 简单直接,只能对源数组完整地复制 2.Arrays.copyOf(T[] original, int newLength) 可以只复制源数组中部分元素,但复制的起始位 ...

  6. 几个 PHP 的"魔术常量"

    __LINE__ 文件中的当前行号. __FILE__ 文件的完整路径和文件名.如果用在被包含文件中,则返回被包含的文件名.自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径(如果是符 ...

  7. android 中的常用组件

    gradle gradle 是个啥,一开始我也没弄清,官方解释是: Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具 那么Apache Ant和Apache ...

  8. Spark高级

    Spark源码分析: https://yq.aliyun.com/articles/28400?utm_campaign=wenzhang&utm_medium=article&utm ...

  9. Java DES加密解密

    import javax.crypto.Cipher; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpe ...

  10. python模拟登陆discuz论坛

    #! /usr/bin/env python # -*- coding: utf-8 -*- import urllib2, urllib, cookielib, re, time class Rob ...