zoukankan      html  css  js  c++  java
  • 并查集-F

    F - How Many Tables

    并查集的模板都能直接套,太简单不注释了,就存个代码

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 
     4 const int size = 1010;
     5 int parent[size];
     6 int cnt[1005];
     7 int t, n, m, x, y, num;
     8 
     9 
    10 //赋初值 
    11 void parentkey(int n){
    12     for(int i=1;i<=n;i++){
    13         parent[i] = i;
    14         cnt[i] = 0;    
    15     }    
    16 }
    17 
    18 //找根节点
    19 int find(int x){
    20     return x==parent[x]? x : parent[x]=find(parent[x]);
    21 } 
    22 
    23 //合并 
    24 void parent_union(int x,int y){
    25     int fx = find(x);
    26     int fy = find(y);
    27     parent[fy] = fx;
    28 }
    29 
    30 int number(int x){
    31     int num = 0;
    32     int fx = find(x);
    33     for(int i=0;i<size;i++){
    34         if(fx==find(i))
    35             num++;
    36     }
    37     return num;
    38 }
    39 
    40 int main(){
    41     scanf("%d",&t);
    42     while(t--){
    43         scanf("%d %d",&n ,&m);
    44         parentkey(n);
    45         num = 0;
    46         for(int i=0; i<m; i++){
    47             scanf("%d %d",&x, &y);
    48             parent_union(x, y);
    49         }
    50         for(int i=1; i<=n; i++){
    51             cnt[find(i)]++;
    52         }for(int i=1; i<=n; i++)
    53             if(cnt[i])
    54                 num ++;
    55         printf("%d
    ",num);        
    56     }
    57     
    58 }
  • 相关阅读:
    Python下载安装
    批量修改样式及全选反选
    小99
    练习题
    练习
    对象、函数
    操作document对象练习
    练习题
    0513-2
    0513-1
  • 原文地址:https://www.cnblogs.com/0424lrn/p/12221024.html
Copyright © 2011-2022 走看看