题目描述

When I boring , I'm crazy...So I design a BT game just for fun...It's easy...

输入描述

    First line is a interger T <=20 ;
T case follow ,each case begin with the interger N(N<=100000) , as the max number I will give .
Then the interger M(M<=10000) ,as the M lines follow:
One type of format as "A B" is the only instruction I did,it means let A and B in the same set.
All the interger not less than 0.

输出描述

    if they are already in the same set puts "nop",else printf the min number in this set.

样例输入

1
10
5
1 3
1 2
5 4
5 3
5 3

样例输出

1
1
4
1
nop
使用并查集,
做每次归并操作的时候,取2个集合中的最小根结点作为新集合的根节点,并输出该
结点的值。同时可以做路径压缩操作。
代码如下:
#include<stdio.h>
int set[100002],n,m,a,b,t;
void init()
{int i;for(i=1;i<=n;i++){set[i]=i;}
}
int find2(int x)
{int r=x,temp;while(set[x]!=x)x=set[x];
while(r!=x)
temp=set[r],set[r]=x,r=temp;return x;
}
void merge2(int a,int b)
{
int ra=find2(a);
int rb=find2(b);
if(ra==rb)
printf("nop\n");else if(ra<rb){set[rb]=ra;
printf("%d\n",ra);
}else{set[ra]=rb;
printf("%d\n",rb);}
}
int main()
{scanf("%d",&t);while(t--){
scanf("%d",&n);init();
scanf("%d",&m);while(m--){scanf("%d %d",&a,&b);merge2(a,b);}    }return 0;
}

转载于:https://www.cnblogs.com/pandy/archive/2009/05/02/1447647.html

Just for fun----zjfc 并查集操作相关推荐

  1. leetcode1319. 连通网络的操作次数(并查集)

    用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1.线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b. 网络 ...

  2. [JSOI2008]星球大战 并查集

    这一阵子因为好多原因,学习时间有点少,还好时间不算很长. 这两天写了道并查集的题目,感觉不错. 题目描述 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治着整个星系. 某一天,凭着一个偶 ...

  3. HDU - 6393 Traffic Network in Numazu(线段树+LCA+树链剖分+并查集)

    题目链接:点击查看 题目大意:给出一个由n个点和n条边组成的图,每条边都有权值,题目保证图是连通的,然后给出m个询问,每次询问分为两种形式: 0 x y:将第x条边的权值修改为y 1 x y:查询x- ...

  4. 并查集与贪心算法的应用之求解无向图的最小生成树

    一,介绍 本文介绍使用Kruskal算法求解无向图的最小生成树.Kruskal是一个贪心算法,并且使用了并查集这种数据结构. 关于并查集的介绍,参考:数据结构--并查集的原理及实现 二,构造一个无向图 ...

  5. P5787 二分图 /【模板】线段树分治(线段树分治、并查集)

    关于什么是合理的实现 解析 本题把并查集写在了题面上 然而,我却一直沉浸在一个及其通用的判断二分图的方法中: 一个图是二分图的充要条件是它没有奇环 怎么维护这个玩意?带权并查集! 怎么套线段树分治?可 ...

  6. leetcode684. 冗余连接(并查集)

    在本问题中, 树指的是一个连通且无环的无向图. 输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, -, N) 的树及一条附加的边构成.附加的边的两个顶点包含在1到N中间,这条附加的边不属于 ...

  7. leetcode面试题 17.07. 婴儿名字(并查集)

    每年,政府都会公布一万个最常见的婴儿名字和它们出现的频率,也就是同名婴儿的数量.有些名字有多种拼法,例如,John 和 Jon 本质上是相同的名字,但被当成了两个名字公布出来.给定两个列表,一个是名字 ...

  8. 【BZOJ1015】【tyvj3487】星球大战starwar,特别的并查集技巧

    传送门1 传送门2 写在前面:无 思路:比较简单的并查集题目,正着做很难,我们可以倒着想,询问倒着排,相当于每次加入一个星球并把可以连的边都连上,查一下联通块数量就行了 注意:必须两个顶点都没有被摧毁 ...

  9. 数据结构 之 并查集(Disjoint Set)

    一.并查集的概念:     首先,为了引出并查集,先介绍几个概念:     1.等价关系(Equivalent Relation)     自反性.对称性.传递性.     假设a和b存在等价关系.记 ...

最新文章

  1. LeetCode实战:环形链表 II
  2. SAP MCH1表和MCHA表更新逻辑
  3. char *a 与 char a[] 的区别
  4. 通过Shell开发企业级专业服务启动脚本案例(MySQL)
  5. JavaSE(十)之反射
  6. MODBUS通讯协议详解(基于485)
  7. 分享18道Java基础面试笔试题
  8. POJ-3154-Graveyard
  9. Docker-基本概念(镜像和容器)
  10. 如何运行从github拉取的vue项目
  11. a href=javascript:;/a
  12. 阿里服务器降温系统,双十一服务器靠“泡澡”降温?阿里看上了3M的这项“冷”科技...
  13. md快捷键(win)
  14. 项目操作案例丨西门子PLC通过网关连接ACS800变频器
  15. GAN的一些经典网络的基本思想
  16. c语言实现的学生信息查询系统
  17. docer kafka安装
  18. 已经提交到gitlab上的代码如何撤回
  19. 洛阳理工学院linux实验报告,谁来给我抄实验报告啊!这一张又一张写得。。。。...
  20. springboot+jsp项目校园外卖配送系统

热门文章

  1. SqlServer Management出现列名无效
  2. 鲁大师PC最新硬件排行,汇总Q1季度最强PC硬件产品!
  3. 【django】settings.py配置文件内容详细介绍
  4. 转载一份诚恳的互联网找工作总结和感想(附:怎样花两年时间去面试一个人)
  5. springboot房屋租赁管理系统的设计与实现
  6. 在任务管理器中不小心把资源管理器给关了导致电脑黑屏
  7. Spring中的各种Utils(四):ClassUtils详解
  8. 32位系统能够识别多达内存_C ++程序可打印多达N个术语的卢卡斯系列
  9. Docker 镜像仓库 -- Harbor 搭建
  10. 蓝桥杯-兰顿蚂蚁(python)