https://pintia.cn/problem-sets/994805342720868352/problems/994805361586847744
很不错的一个并查集的操作。你会发现我们需要处理的是对于每一个人,它的所有的兴趣都是在一个集合中的故将所有的集合都合并。

#include<bits/stdc++.h>
using namespace std;
const int N=1e3+10;
map<int,int>mp;
int n,m,p[N],cnt[N],x;
set<int>st;//是用来去重的存一下,所有的感兴趣的点
int find(int x)
{if(x!=p[x]) p[x]=find(p[x]);return p[x];
}
int main(void)
{cin>>n;for(int i=1;i<=1000;i++) p[i]=i;for(int i=1;i<=n;i++){vector<int>ve;scanf("%d:",&m);for(int j=0;j<m;j++){cin>>x; ve.push_back(x);st.insert(x);}for(int j=1;j<ve.size();j++)//将这些点(兴趣)合并为一个集合{if(p[find(ve[j])]!=find(ve[0])){cnt[find(ve[0])]+=cnt[find(ve[j])];p[find(ve[j])]=find(ve[0]);}}cnt[find(ve[0])]++;//将这个人加入到集合中}vector<int>ans;for(auto i=st.begin();i!=st.end();i++) if(!mp[find(*i)]) ans.push_back(cnt[find(*i)]),mp[find(*i)]=1;sort(ans.begin(),ans.end());cout<<ans.size()<<endl;for(int i=ans.size()-1;i>=0;i--) {if(ans[i]) cout<<ans[i];if(i) cout<<" ";}return 0;
}

1107 Social Clusters (30 分)【难度: 中 / 知识点: 并查集】相关推荐

  1. PAT甲级1107 Social Clusters (30 分):[C++题解]并查集,爱好、人数

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 凭爱好,分人群.注意点:爱好可传递.什么意思?意思是A和B的有共同爱好1, B和C有共同爱好2,那么认为A和C也是同一群人. 按照爱 ...

  2. 1034 Head of a Gang (30 分) 【难度: 中 / 知识点: 并查集】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805456881434624 首先不难想到的是并查集,不过这里有一个关键的 ...

  3. 1114 Family Property (25 分)【难度: 中/ 知识点: 并查集】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805356599820288 挺好的一个并查集,先读入然后再处理.注意:在 ...

  4. 关于算法中的并查集,写的很有意思,转过来看看~

    文章来自于:http://blog.csdn.net/niushuai666/article/details/6662911 例子就是杭电上的畅通工程: http://acm.hdu.edu.cn/s ...

  5. 分珠(dfs+并查集)

    1140 分珠 时间限制:500MS  内存限制:65536K 提交次数:24 通过次数:18 题型: 编程题   语言: G++;GCC Description 如下图所示,有若干珠子,每颗珠子重量 ...

  6. 7-3 最小生成树-kruskal (10 分)(思路+详解+并查集详解+段错误超时解决)宝 Come

    一:前言 本题需要用到并查集的知识,建议先学完并查集后再看看本题 二:题目 题目给出一个无向连通图,要求求出其最小生成树的权值. 温馨提示:本题请使用kruskal最小生成树算法. 输入格式: 第一行 ...

  7. 给我三分钟,带你领略热血江湖中的并查集算法

    你好,我是小黄,一名独角兽企业的Java开发工程师. 校招收获数十个offer,年薪均20W~40W. 感谢茫茫人海中我们能够相遇, 俗话说:当你的才华和能力,不足以支撑你的梦想的时候,请静下心来学习 ...

  8. 1143 Lowest Common Ancestor (30 分)【难度: 中 / 知识点: 最低公共祖先 未完成】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805343727501312

  9. 1072 Gas Station (30 分)【难度: 中 / 知识点: Dijkstra + 枚举】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805396953219072 题目说的不清不楚,应该直接说要建一个加油站, ...

最新文章

  1. 可重构人工智能设备展现出智能化前景
  2. git reset --hard 恢复
  3. php mysql log文件,mysql log文件【读书笔记1】_MySQL
  4. java的imshow方法_imshow窗口是截止的
  5. 算法学习总结(三):插入排序
  6. 【计算机系统设计】学习笔记(1)03,04
  7. linux 卸载 1.6,在linux上卸载nump1.6.1并安装nump1.5.1,[它将要使用gipsyoasi II version6]...
  8. Java回调网址_极光短信- 回调接口 - 极光文档
  9. Maven3.8.1下载
  10. 跑步机上的精彩人生——Linus大神传奇
  11. 入门 Android Lint
  12. Mybatis Plus基础06 mapperLocations配置(指定Mapper.xml文件路径)
  13. 记录一下自己配置Tomcat(9.0.69)
  14. Leetcode_1823_找出游戏的获胜者_约瑟夫环
  15. 2021 csp-s
  16. DOS窗口中使用的命令行
  17. C++中eof(),bad(),fail(),good(),clear()
  18. 02-时间相关电位ERP的认识
  19. linux驱动开发: wm8960 codec代码分析
  20. 区块链游戏当下的市场

热门文章

  1. hdu2570(贪心)
  2. qmake 之 CONFIG 与 QT 乱谈
  3. Worker Service in ASP .NET Core
  4. 2018-11-25-今日总结
  5. 第二次周考题目答案整理
  6. datagridview绑定xml
  7. Python__封装
  8. 结对项目之需求分析与原型设计
  9. 同期及上期数据对比处理示例.sql
  10. 我的小型网站搜索分词中遇到的问题