比较恶心

  1. 1: 0 0 空树是一棵树
  2. 2: 1 1 0 0 不是树
  3. 3: 1 2 1 2 0 0 不是树...
  4. 4: 1 2 2 3 4 5 不是树 森林不算是树
  5. 5: 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 1
  6. 6: 1 2 2 1 0 0 也是错误的
  1. #include<stdio.h>
  2. #include<string.h>
  3. int pa[],a[],b[],n,in[],map[],hash[];
  4. void init()
  5. {
  6. for(int i=;i<=n;i++)
  7. {
  8. pa[i]=i;
  9. }
  10. }
  11. int find(int x)
  12. {
  13. if(x!=pa[x])
  14. pa[x]=find(pa[x]);
  15. return pa[x];
  16. }
  17. int main()
  18. {
  19. int i,j,flag,ff=;
  20. while(scanf("%d%d",&a[],&b[])!=EOF)
  21. {
  22. j=;
  23. memset(hash,,sizeof(hash));
  24. memset(map,,sizeof(map));
  25. memset(in,,sizeof(in));
  26. if(!hash[a[]])
  27. map[j++]=a[];
  28. if(!hash[b[]])
  29. map[j++]=b[];
  30. if(a[]==&&b[]==)
  31. {
  32. printf("Case %d is a tree.\n",++ff);
  33. continue;
  34. }
  35. n=;
  36. flag=;
  37. if(a[]<&&b[]<)
  38. break;
  39. in[a[]]++,in[b[]]++;
  40. if(a[] > n) n = a[];
  41. if(b[] > n) n = b[];
  42. i=;
  43. while()
  44. {
  45. i++;
  46. scanf("%d %d",&a[i],&b[i]);
  47. if(a[i]==&&b[i]==)
  48. break;
  49. if(!hash[a[i]])
  50. {
  51. hash[a[i]]=;
  52. map[j++]=a[i];
  53. }
  54. if(!hash[b[i]])
  55. {
  56. map[j++]=b[i];
  57. hash[b[i]]=;
  58. }
  59. if(a[i] > n) n = a[i];
  60. if(b[i] > n) n = b[i];
  61. }
  62. int num=j;
  63. //for(j=0;j<num;j++)
  64. // printf("%d ",map[j]);
  65. //printf("\n");
  66. int len=i;
  67. init();
  68. for(i=;i<len;i++)
  69. {
  70. int x,y;
  71. x=find(a[i]);
  72. y=find(b[i]);
  73. if(x!=y)
  74. {
  75. pa[x]=y;
  76. }
  77. else
  78. flag=;
  79. }
  80. int ans=;
  81. for(i=;i<num;i++)
  82. {
  83. if(pa[map[i]]==map[i])
  84. {
  85. ans++;
  86. }
  87. }
  88. if(ans>)
  89. flag=;
  90. if(flag)
  91. printf("Case %d is a tree.\n",++ff);
  92. else
  93. printf("Case %d is not a tree.\n",++ff);
  94. }
  95. }

poj1308 并查集的更多相关文章

  1. poj1308(并查集)

    题目链接:http://poj.org/problem;jsessionid=436A34AE4BE856FB2DF9B264DCA9AA4E?id=1308 题意:给定一些边让你判断是否构成数. 思 ...

  2. 并查集——poj1308(并查集延伸)

    题目链接:Is It A Tree? 题意:给你一系列形如u v的点对(u v代表一条由u指向v的有向边),请问由给你的点构成的图是不是一棵树? 树的特征:①每个节点(除了根结点)只有一个入度:②只有 ...

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

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

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

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

  5. POJ-1308 Is It A Tree?(并查集判断是否是树)

    http://poj.org/problem?id=1308 Description A tree is a well-known data structure that is either empt ...

  6. 【转】并查集&MST题集

    转自:http://blog.csdn.net/shahdza/article/details/7779230 [HDU]1213 How Many Tables 基础并查集★1272 小希的迷宫 基 ...

  7. BZOJ 4199: [Noi2015]品酒大会 [后缀数组 带权并查集]

    4199: [Noi2015]品酒大会 UOJ:http://uoj.ac/problem/131 一年一度的“幻影阁夏日品酒大会”隆重开幕了.大会包含品尝和趣味挑战两个环节,分别向优胜者颁发“首席品 ...

  8. 关押罪犯 and 食物链(并查集)

    题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用"怨气值"( ...

  9. 图的生成树(森林)(克鲁斯卡尔Kruskal算法和普里姆Prim算法)、以及并查集的使用

    图的连通性问题:无向图的连通分量和生成树,所有顶点均由边连接在一起,但不存在回路的图. 设图 G=(V, E) 是个连通图,当从图任一顶点出发遍历图G 时,将边集 E(G) 分成两个集合 T(G) 和 ...

随机推荐

  1. IOS Orientation, 想怎么转就怎么转~~~

    此博文主要针对IOS应用, 是屏幕旋转相关问题的一个总结. 主要内容有: IOS5,6,7不同版的适配. 强制旋转和自动旋转. 博客: http://www.cnblogs.com/jhzhu 邮箱: ...

  2. jquery 实现邮箱输入自动提示功能:(一)

    记得去年做某个项目的时候,用到了邮箱输入自动提示功能,于是网上搜了一下,发现了这个写得不错,现在回想起来,转载一下,方便查阅. 邮箱的广泛使用得益于它的免费,因此很多网站在注册的时候都会直接使用邮箱作 ...

  3. NGUI 3.x 练习

    一.常用快捷键 Alt+Shitf+W 创建一个新的 Widget Alt+Shift+S 创建一个新的 Sprite Alt+Shift+L 创建一个新的 Label Alt+Shift+T 创建一 ...

  4. java 20 - 8 字节流的文件复制以及汉字在计算机中的存储方式

    复制文本文件:把当前目录下的FileIntputStream.java文件里面的内容复制到当前目录的b.txt文件中 分析: 数据源: FileIntputStream.java -- 读取数据 -- ...

  5. xshell5 启动显示 mfc110.dll msvcp110.dll 未找到问题 解决办法

    1. 安装 Visual C++ Redistributable for Visual Studio 2012 x86版本 注意: 一定要安装x86版本.(xshell5是32位的程序) 微软的官方下 ...

  6. Android SQLite (三 ) 全面详解(一)

    官网 SQLite是一款轻型的数据库,是关系型数据库(RDBMS)管理系统,它包含在一个相对小的C库中.目前在很多嵌入式产品中使用了它,它占用资源非常 的低,在嵌入式设备中,可能只需要几百K的内存就够 ...

  7. 一、IOS运行原理

    1.首先执行main函数 2.执行UIPaalicationMain函数 3.UIApplication函数内部 1>创建一个UIApplication实例.这个UIApplication对象是 ...

  8. Maven 其他功能

    测试:指定测试哪些测试类,指定哪些测试类不测试,可以使用通配符 使用 Hudson 进行持续集成 持续集成:快速且高频率地自动构建项目的所有源码,并为项目成员提供丰富的反馈信息 一个典型的持续集成场景 ...

  9. 15Mybatis_输出类型

    输出类型分为两种:1.resultType          和         2.resultMap 接下来先讲解resultType: 使用resultType进行输出映射,只有查询出来的列名和 ...

  10. 使用ConfigurationManager类读写配置文件

    使用ConfigurationManager类 读写配置文件app.config,以下为代码: view plaincopy to clipboard print? using System; usi ...