点击打开链接

题意:T组测试用例,输入n,m,输入m对数x,y(x不等于y),表示x,y在同一个连通分量里面。输出连通分量的个数。

连通分量的个数:

1.可以求出一共有多少个根节点(即fa[i]==-1的i个数)

2.可以用原始连通分量数n 减去 有效的合并次数。即每次合并两个连通分量就会使得总的分量数目减少1.

#include<bits/stdc++.h>
using namespace std;
int fa[1010];
int findset(int x)
{if(fa[x]==-1)return x;return fa[x]=findset(fa[x]);
}
int bindd(int u,int v)
{int fu=findset(u);int fv=findset(v);if(fu!=fv){fa[fu]=fv;return 1;}return 0;
}
int main()
{int t,n,m,x,y,ans,i;scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);ans=n;memset(fa,-1,sizeof(fa));while(m--){scanf("%d%d",&x,&y);ans-=bindd(x,y);//cout<<ans<<"!"<<endl;}printf("%d\n",ans);}
}
#include<bits/stdc++.h>
using namespace std;
int fa[1010];
int findset(int x)
{if(fa[x]==-1)return x;return fa[x]=findset(fa[x]);
}
int bindd(int u,int v)
{int fu=findset(u);int fv=findset(v);if(fu!=fv){fa[fu]=fv;return 1;}return 0;
}
int main()
{int t,n,m,x,y,ans,i;scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);memset(fa,-1,sizeof(fa));while(m--){scanf("%d%d",&x,&y);ans-=bindd(x,y);}ans=0;for(i=1;i<=n;i++)if(fa[i]==-1)ans++;printf("%d\n",ans);}
}

统计有几个连通分量--hdu 1213 并查集相关推荐

  1. hdu 5606(并查集)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5606 解题思路: 这题实际上是要找一些连通的节点,使得边上的权值都为0. 很明显,首先把权值为0的边都 ...

  2. hdu 1856 并查集 求最大的子树含有元素的个数

    这道题数据有点大, 我再次 被 cin>> he  cin<<out 多次超时, 改成 scanf 和 printf  后一次ac . 欲哭无泪啊! 完全是 并查集 ,模板 , ...

  3. HDU 5441并查集 by cyl

    HDU 5441 题意: ​ 杰克喜欢旅游,从城市a到城市b是他最喜欢的,现在有n个城市m个路. ​ 当杰克在从城市a到城市b 的时候需要坐车,但是需要有等待时间t,他无法忍受超过x 的等待时间. ​ ...

  4. hdu 1232 并查集

    并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了.以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定.不分享出来真是对不起party了.(party:我靠,关我嘛事啊?我跟你很熟么?) ...

  5. hdu 4496 并查集

    点击打开链接 题意: 给出一个有N(0<N<=10000)个顶点的无向图(顶点编号0到N-1), 然后依次给出它的M(0<M<=100000)条边,要求依次输出当删除给出的前k ...

  6. hdu 4907(并查集)

    Task schedule Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Pr ...

  7. hdu 2473(并查集+删除操作)

    解题思路:这道题有并查集的删除操作,如果直接对这一棵树进行删除节点操作肯定是很困难的.所以可以建立虚拟节点,只要有一个节点要被删除,就直接把它投影到虚拟节点上,即用这个虚拟节点来代替我们要删除的节点. ...

  8. hdu 3172(并查集+hash)

    解题思路:典型的并查集,只是每个人的名字要转换成数字,可以用map,也可以用字典树,我最开始用的字典树结果爆内存了.. 爆内存: #include<iostream> #include&l ...

  9. hdu 3081(并查集+最大流)

    题目大意: n个男孩n个女孩,女孩选男孩,每个女孩都要选到不同的人 k对女孩有相同选择标准, 女孩每轮都选择没选过的男孩, 问总共能选几轮.解题思路:女孩编号1......n,男孩编号n+1,n+2, ...

最新文章

  1. [译] APT分析报告:04.Kraken - 新型无文件APT攻击利用Windows错误报告服务逃避检测
  2. 【Linux】一步一步学Linux——VMware虚拟机三种网络模式详解(07)
  3. TCP/IP协议各层首部汇总
  4. Servlet3.0 jsp跳转到Servlet 出现404错误的路径设置方法
  5. JavaScript引用类型之Array数组的concat()和push()方法的区别
  6. 【数字信号调制】基于matlab多进制数字频率调制(4FSK)【含Matlab源码 999期】
  7. Junos: 使用之前
  8. PyTest 生成多种格式的 测试报告 report
  9. 【Unity】入门级Unity安装教程
  10. 自动化测试方案设计和实现
  11. 计算机wifi共享怎么设置,电脑怎么共享wifi热点 电脑设置wifi热点教程
  12. WY-2000B空气质量检测系统
  13. 访问服务器硬盘速度慢,硬盘读取速度变慢 当前传输模式pio的解决方法
  14. 程序员一周内了解一个行业的方法
  15. 【办公应用软件】万彩办公大师丨PDF页面修剪帮助文档
  16. 基于神经网络的目标检测论文之目标检测系统:实时路况检测系统的设计与实现
  17. 启动kafka过一会进程自动挂掉问题原因
  18. docker-compose 搭建 Rap2 接口管理平台
  19. 测试工程师-yy面试 cvte面试总结
  20. 团队管理5--技术管理如何兼顾技术

热门文章

  1. python读取txt每一行-Python逐行读取txt文本,按符合分割词并逐行写入txt
  2. 安装完python怎么打开-python安装后怎么启用
  3. python编程例子-python网络编程实例简析
  4. 零基础学python全彩版答案-零基础学Python(全彩版)
  5. 语音识别技术的研究难点以及未来发展方向
  6. 成都高新税务推出智能电话语音咨询服务 24小时在线答复
  7. 未来比较火的计算机领域,【火了】未来十年,中国人才最紧缺的6个专业!
  8. Vue中this.$router.replace和this.$router.push的区别
  9. 【动态规划】计蒜客:蒜头君闯关(最长递增子序列的变体)
  10. 【前缀和笔记】前缀和介绍和使用