[2016-03-15][HDU][1213][How Many Tables]

  • 时间:2016-03-15 16:19:15 星期二

  • 题目编号:[2016-03-15][HDU][1213][How Many Tables]

  • 题目大意:请朋友吃饭,每个朋友都不喜欢和不认识的人在一桌,给出认识的关系,问至少要多少桌

  • 输入:

    • t组数
    • 每组数据
    • n m
    • m行 u v 表示u 和 v 认识
  • 输出:

    • 最少
  • 分析:并查集,求集合的数目

  1. #ifdef _WORK_
  2. #include <vector>
  3. #include <list>
  4. #include <map>
  5. #include <set>
  6. #include <deque>
  7. #include <queue>
  8. #include <stack>
  9. #include <bitset>
  10. #include <algorithm>
  11. #include <functional>
  12. #include <numeric>
  13. #include <utility>
  14. #include <sstream>
  15. #include <iostream>
  16. #include <iomanip>
  17. #include <cstdio>
  18. #include <cmath>
  19. #include <cstdlib>
  20. #include <cctype>
  21. #include <string>
  22. #include <cstring>
  23. #include <cstdio>
  24. #include <cmath>
  25. #include <cstdlib>
  26. #include <ctime>
  27. using namespace std;
  28. typedef long long LL;
  29. #define CLR(x,y) memset((x),(y),sizeof((x)))
  30. #define FOR(x,y,z) for(int (x)=(y);(x)<(z);++(x))
  31. #define FORD(x,y,z) for(int (x)=(y);(x)>=(z);--(x))
  32. const int maxn = 1000 + 100;
  33. int fa[maxn],mrank[maxn];
  34. void ini(int n){
  35. memset(mrank,0,sizeof(mrank));
  36. for(int i = 0; i <= n;++i){
  37. fa[i] = i;
  38. }
  39. }
  40. int fnd(int x){
  41. return x ==fa[x]?x:fa[x] = fnd(fa[x]);
  42. }
  43. void uni(int x,int y){
  44. x = fnd(x);y = fnd(y);
  45. if(x == y) return ;
  46. if(mrank[x] < mrank[y]){
  47. fa[x] = y;
  48. }else {
  49. fa[y] = x;
  50. if(mrank[x] == mrank[y]) ++mrank[x];
  51. }
  52. }
  53. int main(){
  54. //freopen("in.txt","r",stdin);
  55. //freopen("out.txt","w",stdout);
  56. int t;
  57. scanf("%d",&t);
  58. while(t--){
  59. int n,m;
  60. scanf("%d%d",&n,&m);
  61. ini(n);
  62. FOR(i,0,m){
  63. int u,v;
  64. scanf("%d%d",&u,&v);
  65. uni(u,v);
  66. }
  67. int ans = 0;
  68. FOR(i,1,n + 1){ if(fa[i] == i)
  69. ++ans;
  70. }
  71. printf("%d\n",ans);
  72. }
  73. return 0;
  74. }
  75. #endif

来自为知笔记(Wiz)

时间: 2024-08-03 08:11:04

[2016-03-15][HDU][1213][How Many Tables]的相关文章

hdu 1213 How Many Tables(并查集算法)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1213 How Many Tables Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 13787    Accepted Submission(s): 6760 Problem Description Today is Ignatius' b

HDU 1213 How Many Tables (并查集)

How Many Tables Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 1213 Appoint description:  System Crawler  (2015-05-25) Description Today is Ignatius' birthday. He invites a lot of friends. Now

HDU 1213 How Many Tables(模板——并查集)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1213 Problem Description Today is Ignatius' birthday. He invites a lot of friends. Now it's dinner time. Ignatius wants to know how many tables he needs at least. You have to notice that not all the fri

HDU 1213 How Many Tables (并查集,连通分支数,两种方式)

How Many Tables Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 23012    Accepted Submission(s): 11485 Problem Description Today is Ignatius' birthday. He invites a lot of friends. Now it's din

HDU 1213: How Many Tables (in Java)

/** * @link http://acm.hdu.edu.cn/showproblem.php?pid=1213 * @author Sycamore * @date Aug, 18 */import java.util.*; class Main{ static int []parent=new int[1001]; static int find(int x) { return parent[x]=x==parent[x]?x:find(parent[x]); } static void

HDU 1213 How Many Tables(并查集)

传送门 Description Today is Ignatius' birthday. He invites a lot of friends. Now it's dinner time. Ignatius wants to know how many tables he needs at least. You have to notice that not all the friends know each other, and all the friends do not want to

HDU 1213 How Many Tables【并查集】

解题思路:和畅通工程类似,问最后还剩下几个不连通的区域. How Many Tables Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 15086    Accepted Submission(s): 7364 Problem Description Today is Ignatius' birthday. He invites a

hdu 1213 How Many Tables(并查集的简单应用)

How Many Tables Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 16333    Accepted Submission(s): 8012 Problem Description Today is Ignatius' birthday. He invites a lot of friends. Now it's dinn

HDU 1213 How Many Tables 第一道并查集的题。

How Many Tables Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 15083    Accepted Submission(s): 7361 Problem Description Today is Ignatius' birthday. He invites a lot of friends. Now it's dinn