zoukankan      html  css  js  c++  java
  • hdu 1213 How Many Tables 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1213

         有关系(直接或间接均可)的人就坐在一张桌子,我们要统计的是最少需要的桌子数。

         并查集的入门题,什么优化都无用到就可以直接过。实质上就是统计总共有多少个不相交的集合。比较可恶的是,题目中 There will be a blank line between two cases 是骗人的!!!

      

     1 #include <iostream>
     2 using namespace std;
     3 
     4 const int maxn = 1000 + 5;
     5 int p[maxn], rank[maxn];
     6 
     7 int find(int x)
     8 {
     9     while (x != p[x])
    10         x = p[x];
    11     return x;
    12 }
    13 
    14 void merge(int i, int j)
    15 {
    16     int x = find(i);
    17     int y = find(j);
    18     if (x > y)
    19         p[y] = x;
    20     else
    21         p[x] = y;
    22 }
    23 
    24 int main()
    25 {
    26     int a, b, i, t, m, n, refusals;
    27     while (scanf("%d", &t) != EOF)
    28     {
    29         while (t--)
    30         {
    31             scanf("%d%d", &n, &m);
    32             for (i = 1; i <= n; i++)
    33                 p[i] = i;
    34             for (i = 0; i < m; i++)
    35             {
    36                 scanf("%d%d", &a, &b);    
    37                 merge(a, b);
    38             }
    39             for (refusals = 0, i = 1; i <= n; i++)
    40                 if (p[i] == i)
    41                     refusals++;
    42             printf("%d\n", refusals);
    43         }
    44     }
    45     return 0;
    46 } 
  • 相关阅读:
    codeforces 985 F. Isomorphic Strings
    Educational Codeforces Round 44
    codeforces 979D
    ARC060 Digit Sum II
    Iroha and Haiku II
    Unhappy Hacking II
    Just h-index 2018湘潭邀请赛
    [HAOI2007]理想的正方形
    P1231 教辅的组成
    最小割数学形式
  • 原文地址:https://www.cnblogs.com/windysai/p/3307717.html
Copyright © 2011-2022 走看看