1107. Social Clusters (30)
来源:互联网 发布:淘宝达达妈生活馆假货 编辑:程序博客网 时间:2024/05/19 00:50
PAT上一道题目,题意为一群人,其中有相同兴趣的人可以构成一个社交群体,求可以构成的社交群体个数和各个群体的人数。本题其实就是做一次并查集即可,有相同兴趣爱好的人之间有关联,这两个人各自所在的社交群体因为这两个人有相同兴趣爱好而可以合并为一个更大的社交群体。在社群合并的时候注意社群人数累加即可。代码如下:
// 1107. Social Clusters (30).cpp : 定义控制台应用程序的入口点。////#include "stdafx.h"#include<vector>#include<iostream>#include<algorithm>using namespace std;bool cmp(int a,int b){ return a>b;}int findroot(vector<int>& root,int x){ if(root[x]==-1) return x; int r = findroot(root,root[x]); root[x]=r; return r;}int main(){ int n; cin>>n; vector<vector<int>> Hobbies(1001); vector<int> root(n+1,-1); vector<int> num(n+1,1); for(int i=1;i<=n;++i) { int k; cin>>k; getchar(); for(int j=0;j<k;++j) { int t; cin>>t; Hobbies[t].push_back(i); } getchar();//去掉换行符 } for(int i=1;i<=1000;++i) { if(Hobbies[i].size()==0) continue; int t = Hobbies[i][0]; int r1 = findroot(root,t); for(int j=1;j<Hobbies[i].size();++j) { int r2 = findroot(root,Hobbies[i][j]); if(r1!=r2){ num[r1]+=num[r2]; root[r2]=r1; } } } vector<int> ans; for(int i=1;i<=n;++i) { if(root[i]==-1){ ans.push_back(num[i]); } } sort(ans.begin(),ans.end(),cmp); cout<<ans.size()<<endl; for(int i=0;i<ans.size();++i) { cout<<ans[i]; if(i==ans.size()-1)cout<<endl; else cout<<" "; } return 0;};
0 0
- 1107. Social Clusters (30)
- 1107. Social Clusters (30)
- 1107. Social Clusters (30)
- 1107. Social Clusters (30)
- 1107. Social Clusters (30)
- 1107. Social Clusters (30)
- 1107. Social Clusters (30)
- 1107. Social Clusters (30)
- 1107. Social Clusters (30)
- 1107. Social Clusters (30)
- 1107. Social Clusters (30)
- 1107. Social Clusters (30)
- 1107. Social Clusters (30)
- 1107. Social Clusters (30)
- 1107. Social Clusters (30)
- 1107. Social Clusters (30)
- 1107. Social Clusters (30)
- 【PAT】1107. Social Clusters (30)
- Linux 学习笔记(一)
- 简单-正则表达式贪婪与非贪婪模式
- UVA 1608 Non-boring sequences
- html标签总结
- 蓝桥杯 2014 第五题
- 1107. Social Clusters (30)
- 生产者-消费者 模型
- 工厂模式
- iOS开发多线程----简单介绍篇
- 232. Implement Queue using Stacks
- python中for循环/迭代的技巧
- mysql jdbc驱动源码分析(获取链接 connection)
- pAdTy_5 构建可穿戴设备的应用程序
- PWM为什么可以调节亮度