关闭

并查集应用:入门级

标签: 并查集
91人阅读 评论(0) 收藏 举报
分类:

题目引用自洛谷。

  若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。
第一行:三个整数n,m,p,(n<=5000,m<=5000,p<=5000),分别表示有n个人,m个亲戚关系,询问p对亲戚关系。
以下m行:每行两个数Mi,Mj,1<=Mi,Mj<=N,表示Ai和Bi具有亲戚关系。
接下来p行:每行两个数Pi,Pj,询问Pi和Pj是否具有亲戚关系。
输出P行,每行一个’Yes’或’No’。表示第i个询问的答案为“具有”或“不具有”亲戚关系。
这是一道非常简单的并查集题目。没有实际考察价值仅仅用于并查集的入门:

我在这里提供的代码都使用了类封装,事实上这样可能会常数级降低效率。

#include 
#include 
#include 
#define UFS_LIMIT 10000
using namespace std;
class UnionFindSet
{
	public:
		int father[UFS_LIMIT];
		UnionFindSet()
		{
			for(int i=0;i>n>>m>>p;
	for(i=0;i>t1>>t2, ufs.Union(t1,t2);
	for(i=0;i>t1>>t2, cout<<(ufs.IfSame(t1,t2)?"Yes":"No")<


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

poj 2524 并查集 入门

题意: 有n个学生,对他们进行询问,得到m组结果,每组结果表示这两个人信同一个宗教 求最大的宗教数目 解法: 并查集合并,每合并一次减1的数目 #include #include #...
  • cfzjxz
  • cfzjxz
  • 2013-04-09 19:56
  • 1375

快速入门GreenDao框架并实现增删改查案例

GreenDao官网地址:http://greenrobot.org/greendao/ greenDAO 是一个将对象映射到 SQLite 数据库中的轻量且快速的 ORM 解决方案。
  • mynameishuangshuai
  • mynameishuangshuai
  • 2016-05-12 18:17
  • 10784

MySql数据库查询多级部门及其下的所有用户信息

关于多级别菜单栏或者权限系统中部门上下级的树形遍历,oracle中有connect by来实现,  mysql没有这样的便捷途径,所以MySQL遍历数据表是我们经常会遇到的头痛问题,下面通过数据库寒素...
  • Calvex880714
  • Calvex880714
  • 2016-05-09 12:33
  • 3164

POJ 1182 食物链(并查集较高级的应用)

食物链 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 50803   Accepted: 14851 D...
  • u013021513
  • u013021513
  • 2015-06-03 21:25
  • 393

并查集代码

  • 2015-12-12 20:18
  • 1KB
  • 下载

ACM并查集讲解的深化和扩展

  • 2016-07-01 17:27
  • 1.58MB
  • 下载

并查集初步(黄劲松).ppt

  • 2015-04-01 15:45
  • 424KB
  • 下载

Worst-Case Analysis of Set Union Algorithms 并查集的最坏情况分析 TARJAN

  • 2017-12-25 11:37
  • 1.55MB
  • 下载

并查集.ppt

  • 2015-08-11 20:50
  • 832KB
  • 下载

并查集的讲解

  • 2014-03-08 19:33
  • 256KB
  • 下载
    个人资料
    • 访问:16661次
    • 积分:650
    • 等级:
    • 排名:千里之外
    • 原创:51篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条