HDU 1213 How Many Tables(并查集)
来源:互联网 发布:数据库基础pdf 编辑:程序博客网 时间:2024/06/10 06:21
题目链接:
[kuangbin带你飞]专题五 并查集 C - How Many Tables
题目描述:
有一天,一个哥们要过生日,寻思招待一顿,摇了很多朋友,但是朋友之间如果完全不认识(可以间接认识:AB认识,BC认识——>AC认识),坐在一起会尴尬,所以不会坐在一起,所以他不知道要用多少张桌子,想算一下(yy:他家卖桌子的,所以不会缺桌子,他家的桌子很大,可以坐很多很多人)
输入描述:
第一行表示输入数据组数
对于每组数据:
第一行两个数字n, m表示摇了n个哥们,m表示一共输入互相认识的对数
之后m行每行两个数,表示A与B互相认识。
输出描述:
每组数据输出一个整数,表示需要的桌子数
思路:
并查集,两个人相互认识,就合并,最后求桌子数,相当于求父亲是自己的结点个数,因为如过父亲节点是自己的话表示他铁定能占一张桌子,不管谁跟他一张桌子,或有没有人跟他一桌,他这张桌子占定了。很浅显的道理鄙人就不再赘述了。
烂代码如下:
/************************************************************************* > File Name: hdu_1213.cpp > Author: dulun > Mail: dulun@xiyoulinux.org > Created Time: 2016年03月28日 星期一 21时08分43秒 ************************************************************************/#include<iostream>#include<stdio.h>#include<cstring>#include<cstdlib>#include<algorithm>#define LL long longusing namespace std;const int N = 50086;int p[N]; int find(int x) { return p[x] == x? x: p[x] = find(p[x]); }void init() { for(int i = 1; i < N; i++) p[i] = i; }int main(){ int T; scanf("%d", &T); while(T--) { int n, m; int ans = 0; scanf("%d%d", &n, &m); init(); for(int i = 0; i < m; i++) { int a, b; scanf("%d%d", &a, &b); a = find(a); b = find(b); if(a != b) p[a] = b; } for(int i = 1; i <= n; i++) {//找父亲为自己的结点的个数 if(p[i] == i) ans++; } printf("%d\n", ans); } return 0;}
0 0
- 并查集 hdu How Many Tables
- hdu 1213 How Many Tables(并查集~~)
- Hdu 1213How Many Tables 并查集
- 杭电hdu 1213 How Many Tables并查集
- HDU 1213 How Many Tables(并查集)
- HDU 1213 How Many Tables,并查集
- HDU--1213--How Many Tables--并查集
- hdu 1213 How Many Tables(并查集练习)
- HDU 1213 How Many Tables 并查集入门
- HDU 1213 How Many Tables 并查集 水~
- HDU 1213 How Many Tables(并查集)
- [ACM] hdu 1213 How Many Tables(并查集)
- [ACM] hdu 1213 How Many Tables(并查集)
- 【并查集】 HDU 1213 How Many Tables
- hdu 1213 How Many Tables(并查集学习)
- HDU-#1213 How Many Tables (并查集)
- HDU - 1213 How Many Tables (简单并查集)
- HDU 1213 How Many Tables(并查集)
- C/C++程序题(21-25)
- 求四个数的最大公约数
- 电脑眼睛保护色
- BZOJ_P1467/POJ_P3243 Clever Y(扩展BSGS+哈希)
- 面向对象OO 设计、架构终极理解, 以及如何学习一个领域
- HDU 1213 How Many Tables(并查集)
- 整数拆分问题
- STL容器的实现原理
- HDU 1064 Financial Management
- rv-player 不靠谱之rvio
- 作图
- Animoto Video Maker(制作短视频)
- Myeclipse project转换为eclipse project的正确方法(Myeclipse8.5版本转到eclipse java ee juno)
- 经典的js 代码段