0 0 Yes

1 1 0 0 Yes

1 2 2 1 0 0 No

//自回路不算一条边的! 居然有 0 0 这样的测试数据

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<set>
  5. using namespace std;
  6. set<int> ans;
  7. set<int> member;
  8. const int SIZE=+;
  9. int par[SIZE];
  10. int rnk[SIZE];
  11. void init(int n)
  12. {
  13. for(int i=; i<=n; i++)
  14. {
  15. par[i]=i;
  16. rnk[i]=;
  17. }
  18. }
  19.  
  20. int fnd(int x)
  21. {
  22. if(par[x]==x)
  23. return x;
  24. return par[x]=fnd(par[x]);
  25. }
  26.  
  27. void unite(int x, int y)
  28. {
  29. int a=fnd(x);
  30. int b=fnd(y);
  31.  
  32. if(a==b)
  33. return ;
  34. if(rnk[a]<rnk[b])
  35. {
  36. par[a]=b;
  37. }
  38. else
  39. {
  40. par[b]=a;
  41. if(rnk[a]==rnk[b])
  42. rnk[a]++;
  43. }
  44. }
  45.  
  46. int main()
  47. {
  48.  
  49. int x,y;
  50. int cnt=;
  51. init(SIZE-);
  52. int flag=;
  53. while(scanf("%d %d",&x, &y)!=EOF&&x!=-&&y!=-)
  54. {
  55. if(x==&&y==)
  56. {
  57. if(flag==)
  58. {
  59. printf("Yes\n");
  60. continue;
  61. }
  62.  
  63. if(member.size()!=cnt+)
  64. {
  65. printf("No\n");
  66. }
  67. else
  68. {
  69.  
  70. for(set<int>:: iterator it=member.begin(); it!=member.end(); it++)
  71. {
  72. ans.insert(fnd(*it));
  73. }
  74. if(ans.size()==)
  75. printf("Yes\n");
  76. else
  77. printf("No\n");
  78. }
  79.  
  80. member.clear();
  81. ans.clear();
  82. cnt=;
  83. init(SIZE-);
  84. flag=;
  85. }
  86. else
  87. {
  88. flag=;
  89. unite(x,y);
  90. member.insert(x);
  91. member.insert(y);
  92. if(x!=y)
  93. {
  94. cnt++;
  95. }
  96. }
  97.  
  98. }
  99.  
  100. return ;
  101. }

HDOJ1272(并查集,判断是否为树)的更多相关文章

  1. E - Is It A Tree? 并查集判断是否为树

    题目链接:https://vjudge.net/contest/271361#problem/E 具体思路:运用并查集,每一次连接上一个点,更新他的父亲节点,如果父亲节点相同,则构不成树,因为入读是2 ...

  2. 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 ...

  3. HDU - 1272 小希的迷宫 并查集判断无向环及连通问题 树的性质

    小希的迷宫 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一 ...

  4. hdu--1878--欧拉回路(并查集判断连通,欧拉回路模板题)

     题目链接 /* 模板题-------判断欧拉回路 欧拉路径,无向图 1判断是否为连通图, 2判断奇点的个数为0 */ #include <iostream> #include <c ...

  5. 【bzoj4399】魔法少女LJJ 并查集+权值线段树合并

    题目描述 在森林中见过会动的树,在沙漠中见过会动的仙人掌过后,魔法少女LJJ已经觉得自己见过世界上的所有稀奇古怪的事情了LJJ感叹道“这里真是个迷人的绿色世界,空气清新.淡雅,到处散发着醉人的奶浆味: ...

  6. HDU - 5438 Ponds(拓扑排序删点+并查集判断连通分量)

    题目: 给出一个无向图,将图中度数小于等于1的点删掉,并删掉与他相连的点,直到不能在删为止,然后判断图中的各个连通分量,如果这个连通分量里边的点的个数是奇数,就把这些点的权值求和. 思路: 先用拓扑排 ...

  7. P1197 [JSOI2008]星球大战(并查集判断连通块+正难则反)

    P1197 [JSOI2008]星球大战(并查集判断连通块+正难则反) 并查集本来就是连一对不同父亲的节点就的话连通块就少一个. 题目描述 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统 ...

  8. POJ 1703 Find them, Catch them【种类/带权并查集+判断两元素是否在同一集合/不同集合/无法确定+类似食物链】

      The police office in Tadu City decides to say ends to the chaos, as launch actions to root up the ...

  9. 【BZOJ-3673&3674】可持久化并查集 可持久化线段树 + 并查集

    3673: 可持久化并查集 by zky Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 1878  Solved: 846[Submit][Status ...

  10. HDU HDU1558 Segment set(并查集+判断线段相交)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1558 解题报告:首先如果两条线段有交点的话,这两条线段在一个集合内,如果a跟b在一个集合内,b跟c在一 ...

随机推荐

  1. every row of W is a classifier for one of the classes

    every row of W is a classifier for one of the classes As we saw above, every row of W is a classifie ...

  2. PHP自定义函数: 下载远程文件

    function httpcopy($url, $file="", $timeout=60) { $file = empty($file) ? pathinfo($url,PATH ...

  3. 【译】用 Chart.js 做漂亮的响应式表单

    数据包围着我们.虽然搜索引擎和其他应用都对基于文本方式表示的数据偏爱有加,但人们发现可视化是更容易理解的一种方式.今年初,SitePoint 发表了 Aurelio 的文章< Chart.js简 ...

  4. bug-2——tab中beforeActivate:在对象活动前触发

    $j("#tabs").tabs({ beforeActivate:function(event,ui){ var ret = apoCheck('${requestScope.a ...

  5. scala语法解析(解码指环)

    看惯了JAVA的语法,再看scala的语法,有的晦涩难懂.正好遇到一个介绍scala语法的文章,就直接截图留念.省的再临时抱佛脚了.

  6. GCC 常用选项详解

    参考gcc man page 参考:http://www.cppblog.com/seman/archive/2005/11/30/1440.html gcc and g++分别是gnu的c & ...

  7. iOS UIImage UIImageView 展示图片 不变形 处理

    展示图片 时候 固定 了 imageView  的大小  图片 也裁剪了 尽量保持比例 可是 还是失真 变形了 这张图 ui 要求展示的UIimageView 大小 是固定 的  ,传过来的 图片 是 ...

  8. python详细目录

    python第一篇 第二篇.初识列表字典元祖循环 第三篇.内置方法 第四篇.编码解码 列表.元祖 第五篇.数据类型 第六篇 函数 第七篇.函数二 第八篇.递归.装饰器 第九篇 正则表达式 第十篇.模块 ...

  9. logstash的output插件

    logstash 的output插件 nginx,logstash和redis在同一台机子上 yum -y install redis,vim /etc/redis.conf 设置bind 0.0.0 ...

  10. 机器学习(十七)— SVD奇异值分解

    奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域.是 ...