对与知道并查集的人来说这题太水了,裸的并查集,如果你要给别人讲述并查集可以使用这个题当做例题,代码中我使用了路径压缩,还是有一定优化作用的。

#include <stdio.h>
#include <string.h>
const int maxn = 500005; int n, m;
int pa[maxn]; void init()
{
for (int i = 1; i <= n; i++)
{
pa[i] = i;
}
} int find(int x)
{
if (x == pa[x])
return x;
return pa[x] = find(pa[x]); //路径压缩,与不压缩的代码差一点点,很神奇。
} int main()
{
int a, b, fa, fb;
int kase = 1;
while (scanf("%d %d", &n, &m) != EOF)
{
if (!(m+n))
break;
init();
int ans = n;
while (m--)
{
scanf("%d %d", &a, &b);
fa = find(a);
fb = find(b);
if (fa != fb)
{
ans--;
pa[fb] = fa;
}
else
continue;
}
printf("Case %d: %d\n", kase++, ans);
}
return 0;
}

最新文章

  1. Web方式预览Office/Word/Excel/pdf文件解决方案
  2. C# MVC ( 添加路由规则以及路由的反射机制 )
  3. chroot directory
  4. 代码设计工具——PowerDesigner
  5. C#元组示例详解
  6. AppleWatch开发教程之调试程序使用帮助文档
  7. 西秦的ACE-Python教程 一、Python本地开发环境部署
  8. [Linux]学习笔记(4)-su及passwd的用法介绍
  9. 深入理解Objective-C:优化你的代码
  10. 实用iPhone Cydia插件
  11. MYSQL触发器的NEW和OLD的一个小问题
  12. 王立平-NGUI
  13. Java 异步 IO
  14. HTTP严格安全传输(HTTP Strict Transport Security, HSTS)chromuim实现源码分析(二)
  15. A. Karen and Morning
  16. Bit Byte WORD DWORD的区别和联系
  17. linux系统编程:IO读写过程的原子性操作实验
  18. 浅析贝叶斯神经网络(Based on Variational Bayesian)
  19. node.js 远程调试debug产线环境代码
  20. 非WifI环境处理

热门文章

  1. Java:HashMap原理与设计缘由
  2. Node.js Windows Example
  3. CSS清除默认样式代码
  4. 如何正确选择挑选适合的VPS服务器
  5. Python开发【第六篇】: 面向对象
  6. 时间段(今天,昨天,本周,上周,本月,上月,总)的查询,时间处理函数strtotime
  7. HDU 6181:Two Paths(A* + SPFA)
  8. Codeforces 758D:Ability To Convert(思维+模拟)
  9. 嵊州D2T2 八月惊魂 全排列 next_permutation()
  10. 谷歌浏览器 Google Chrome 70.0.3538.102 便携版