1107. Social Clusters (30) 并查集

简介: #include #include #include #include using namespace std;int father[1001];int hobby[1001];int gnum[1001];...
#include <iostream>
#include <vector>
#include <algorithm>
#include <stack>
using namespace std;
int father[1001];
int hobby[1001];
int gnum[1001];

int find(int x){
    while (x != father[x]) {
        x = father[x];
    }
    return x;
}

void Union(int a, int b){
    a = find(a);
    b = find(b);
    if(a < b) father[b] = a;
    else father[a] = b;
}

void init(){
    for (int i = 0; i < 1001; i++) {
        father[i] = i;
    }
}

int main(){
    init();
    int n;
    cin >> n;
    
    for (int i = 1; i <= n; i++) {
        int k;
        scanf("%d:", &k);
        for (int j = 0; j < k; j++) {
            int t;
            scanf("%d", &t);
            if(!hobby[t])
                hobby[t] = i;
            Union(i, find(hobby[t]));
        }
    }
    for (int i = 1; i <= n; i++) {
        gnum[find(i)]++;
    }
    int cnt = 0;
    for (int i = 1; i <= n; i++) {
        if(gnum[i] != 0) cnt++;
    }
    sort(gnum, gnum + 1001);
    cout << cnt << endl;
    for (int i = 1000; i > 1000 - cnt; i--) {
        printf("%d%c", gnum[i], i == 1000-cnt+1 ? '\n' : ' ');
    }
    
    return 0;
}


目录
相关文章
|
存储 C++
【PAT甲级 - C++题解】1107 Social Clusters
【PAT甲级 - C++题解】1107 Social Clusters
64 0
|
机器学习/深度学习 人工智能 算法
【读书笔记】Algorithms for Decision Making(1)
我自己的粗浅看法:机器学习要不是拟合逼近(经常提及的machine learning),要不就是决策过程(reinforcement learning),这本书主要讲述后者的前世今生。
331 0
【读书笔记】Algorithms for Decision Making(1)
|
机器学习/深度学习 算法 流计算
【读书笔记】Algorithms for Decision Making(6)
对于较大状态空间的问题,计算精确解需要极大的内存量,因而考虑近似解的方法。常使用approximate dynamic programming的方法去寻求近似解,进而使用在线方法实现实时计算。
166 0
【读书笔记】Algorithms for Decision Making(6)
|
机器学习/深度学习 API
【读书笔记】Algorithms for Decision Making(8)
解决存在模型不确定性的此类问题是强化学习领域的主题,这是这部分的重点。解决模型不确定性的几个挑战:首先,智能体必须仔细平衡环境探索和利用通过经验获得的知识。第二,在做出重要决策后很长时间内,可能会收到奖励,因此必须将以后奖励的学分分配给以前的决策。第三,智能体必须从有限的经验中进行概括。
211 0
【读书笔记】Algorithms for Decision Making(8)
PAT (Advanced Level) Practice 1044 Shopping in Mars (前缀和 二分)
PAT (Advanced Level) Practice 1044 Shopping in Mars (前缀和 二分)
98 0
AtCoder Beginner Contest 221 D - Online games(差分 离散化 区间)
AtCoder Beginner Contest 221 D - Online games(差分 离散化 区间)
137 0
2020 ICPC Asia Taipei-Hsinchu Site Programming Contest H. Optimization for UltraNet (二分+最小生成树+算贡献)
2020 ICPC Asia Taipei-Hsinchu Site Programming Contest H. Optimization for UltraNet (二分+最小生成树+算贡献)
128 0
PAT (Advanced Level) Practice - 1107 Social Clusters(30 分)
PAT (Advanced Level) Practice - 1107 Social Clusters(30 分)
145 0
【1107】Social Clusters (30 分)
【1107】Social Clusters (30 分) 【1107】Social Clusters (30 分)
129 0