poj 2524 Ubiquitous Religions(简单并查集)
2024-08-27 23:48:39
对与知道并查集的人来说这题太水了,裸的并查集,如果你要给别人讲述并查集可以使用这个题当做例题,代码中我使用了路径压缩,还是有一定优化作用的。
#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;
}
最新文章
- Web方式预览Office/Word/Excel/pdf文件解决方案
- C# MVC ( 添加路由规则以及路由的反射机制 )
- chroot directory
- 代码设计工具——PowerDesigner
- C#元组示例详解
- AppleWatch开发教程之调试程序使用帮助文档
- 西秦的ACE-Python教程 一、Python本地开发环境部署
- [Linux]学习笔记(4)-su及passwd的用法介绍
- 深入理解Objective-C:优化你的代码
- 实用iPhone Cydia插件
- MYSQL触发器的NEW和OLD的一个小问题
- 王立平-NGUI
- Java 异步 IO
- HTTP严格安全传输(HTTP Strict Transport Security, HSTS)chromuim实现源码分析(二)
- A. Karen and Morning
- Bit Byte WORD DWORD的区别和联系
- linux系统编程:IO读写过程的原子性操作实验
- 浅析贝叶斯神经网络(Based on Variational Bayesian)
- node.js 远程调试debug产线环境代码
- 非WifI环境处理
热门文章
- Java:HashMap原理与设计缘由
- Node.js Windows Example
- CSS清除默认样式代码
- 如何正确选择挑选适合的VPS服务器
- Python开发【第六篇】: 面向对象
- 时间段(今天,昨天,本周,上周,本月,上月,总)的查询,时间处理函数strtotime
- HDU 6181:Two Paths(A* + SPFA)
- Codeforces 758D:Ability To Convert(思维+模拟)
- 嵊州D2T2 八月惊魂 全排列 next_permutation()
- 谷歌浏览器 Google Chrome 70.0.3538.102 便携版