题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3560

并查集查有几个块,修改了之前我的一个方法(用什么map),直接判断根节点的id是i的个数。

然后成环的判断就是一个筛选,先筛选一个每个节点的度是不是2,要不是的话直接排除(根节点),在查块的时候,进一步查看这个根节点是不是被排除了。

so easy;

#include <stdio.h>
#include <string.h> int father[];
int degree[];
bool vis[]; int Find_Set(int x)
{
if(x!=father[x])
father[x] = Find_Set(father[x]);
return father[x];
} int main()
{
int n,m;
while(scanf("%d%d",&n,&m),n+m)
{
memset(vis,true,sizeof(vis));
memset(degree,,sizeof(degree)); for(int i=;i<n;i++)
father[i] = i; for(int i=;i<m;i++)
{
int x,y;
scanf("%d%d",&x,&y);
degree[x]++;
degree[y]++; int fx,fy;
fx = Find_Set(x);
fy = Find_Set(y);
if(fx!=fy)
{
father[fy] = fx;
}
} for(int i=;i<n;i++)
{
if(degree[i]!=)
vis[Find_Set(i)] = false;
}
int s = ;
int h = ;
for(int i=;i<n;i++)
{
if(Find_Set(i)==i)
{
s++;
if(vis[i])
h++;
}
} printf("%d %d\n",s,h);
} return ;
}

最新文章

  1. 曲面之美:三星 S6 Edge+
  2. ldconfig和ldd用法
  3. android-Okhttp初步使用
  4. owl-carousel轮播插件的使用
  5. 7.Knockout.Js(Mapping插件)
  6. 面向过程MySQL数据库链接操作
  7. tips [终端]
  8. js 实现图片压缩并转换成base64(data:image/jpeg;base64)格式
  9. Httpservlet 获取json对象字符窜
  10. 一个基于OCV的人肉选取特征点程序
  11. 用div画三角/矩形/圆
  12. 23 创建ArcMap启动日志
  13. jersey 用FastJson替换掉默认的Jackson
  14. [Android] Android 的singleLine废弃解决
  15. oracle 数据库、实例、服务名、SID
  16. FPGA型号解读
  17. Bitbucket备份恢复
  18. 360浏览器设置打开默认为chrome极速模式
  19. Css-浅谈如何将多个inline或inline-block元素垂直居中
  20. Arduino 101/Genuino101使用-第一篇

热门文章

  1. python3 迭代器笔记
  2. 4.会话管理(Session)
  3. Day04 流程控制 while 和for循环
  4. R语言安装程序包
  5. pat1043. Is It a Binary Search Tree (25)
  6. C知识要点-个人总结
  7. genymotion安装及使用出现的问题
  8. .NET面试题2
  9. 使用InstallShield打包VS程序
  10. linq 两个字段排序