zoukankan      html  css  js  c++  java
  • C

    题目大意:

          有多少桌子。开生日派对~ 朋友之间有认识的,有不认识的。如果A、B、C三个人都彼此认识的话,那么三个人可以一桌,但是A、B认识,C跟她们不熟的话,就只能AB一桌,C一个人一桌啦。那么到底需要多少张桌子。第一行输入一个T,表示测试组数。接下来每一组,第一行输入N,M。N表示人数,M表示各自关系数。接下来M行,一行两个整数,表示这两个人是朋友。(N,M<=1000)

    解题思路:

         把输入的两个人连起来,其中一人根节点的id改变为另一人的根节点的id,最后总的看哪些人的id没有改变,没有改变就说明没有朋友或者是他是朋友的那个根节点,那么就要加一张桌子啦。

    解题代码:

     1 #include <iostream>
     2 #include <vector>
     3 #include <map>
     4 #include <string>
     5 #include <queue>
     6 #include <stack>
     7 #include <set>
     8 
     9 #include <cstdio>
    10 #include <cstring>
    11 #include <cmath>
    12 #include <cstdlib>
    13 using namespace std;
    14 
    15 const int INF=0x3f3f3f3f;
    16 const int SIZE=1e3+10;
    17 
    18 int id[SIZE];
    19 int n;
    20 
    21 int find(int x)
    22 {
    23     while(x!=id[x])
    24     {
    25         id[x]=id[id[x]];
    26         x=id[x];
    27     }
    28     return x;
    29 }
    30 
    31 int table=0;
    32 
    33 void un(int p,int q)
    34 {
    35     int pr=find(p);
    36     int qr=find(q);
    37     if(pr==qr) return ;
    38     id[pr]=qr;
    39 }
    40 
    41 void clear()
    42 {
    43     for(int i=1;i<=n;i++)
    44          id[i]=i;
    45 }
    46 
    47 int main()
    48 {
    49     int t;
    50     cin>>t;
    51     while(t--)
    52     {
    53 
    54         int m,a,b;
    55         cin>>n>>m;
    56         clear();
    57         int ar,br;
    58         table=0;
    59         while(m--)
    60         {
    61             cin>>a>>b;
    62             un(a,b);
    63         }
    64         for(int i=1;i<=n;i++)
    65         {
    66             if(id[i]==i) table++;
    67         }
    68         cout<<table<<endl;
    69     }
    70     return 0;
    71 }
    72 
    73  
    まだまだだね
  • 相关阅读:
    javascript基础01
    javascript基础02
    javascript基础03
    javascript基础04
    javascript基础05
    javascript基础06
    Android 实现截屏功能
    android 获取摄像头像素
    c# Winform dataGridView动态添加行
    Android 读取Assets下的文件
  • 原文地址:https://www.cnblogs.com/xxQ-1999/p/7469769.html
Copyright © 2011-2022 走看看