L3-003. 社交集群

题目链接:https://www.patest.cn/contests/gplt/L3-003

查并集

L2-007(家庭房产)类似,都是采用了并查集的算法,相对来说这题处理起来更简单一点。这里我维护了最小的h[i],便于查找。

代码如下:

  1. #include<cstdio>
  2. #include<iostream>
  3. #include<algorithm>
  4. #define N 1005
  5. using namespace std;
  6. int a[N];//存放各组h[k]的最小值
  7. int pre[N+];
  8. int r[N];//存放结果sum
  9. void Make();
  10. int Find(int n);
  11. void Uion(int x,int y);
  12. bool compare(int x,int y){
  13. return x>y;
  14. }
  15. int main(void){
  16. freopen("in.txt","r",stdin);
  17. int n;
  18. Make();
  19. scanf("%d",&n);
  20. for(int i=;i<n;++i){
  21. int t,h,Min,p;
  22. scanf("%d:",&t);
  23. for(int j=;j<t;++j){
  24. scanf("%d",&h);
  25. if(!j){
  26. Min=h;
  27. p=h;
  28. }else{
  29. Min=min(Min,h);
  30. Uion(h,p);
  31. }
  32. }
  33. a[i]=Min;
  34. }
  35. for(int i=;i<=N;++i)Find(i);
  36. for(int i=;i<n;++i)
  37. r[pre[a[i]]]++;
  38. sort(r,r+N,compare);
  39. int k;
  40. for(k=;k<N;k++)
  41. if(!r[k])break;
  42. printf("%d\n",k);
  43. printf("%d",r[]);
  44. for(int i=;i<k;++i)
  45. printf(" %d",r[i]);
  46. printf("\n");
  47. return ;
  48. }
  49. void Make(){
  50. for(int i=;i<=N;++i)
  51. pre[i]=i;
  52. }
  53. int Find(int n){
  54. if(n!=pre[n])pre[n]=Find(pre[n]);
  55. return pre[n];
  56. }
  57. void Uion(int x,int y){
  58. int k1=Find(x),k2=Find(y);
  59. k1<k2?pre[k2]=k1:pre[k1]=k2;
  60. }

L3-003. 社交集群的更多相关文章

  1. PAT L3-003 社交集群

    https://pintia.cn/problem-sets/994805046380707840/problems/994805053141925888 当你在社交网络平台注册时,一般总是被要求填写 ...

  2. pat 团体天梯 L3-003. 社交集群

    L3-003. 社交集群 时间限制 1000 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 在社交网络平台注册时,用户通常会输入自己的兴趣爱好, ...

  3. CCCC L2 部落 L3社交集群

    https://www.patest.cn/contests/gplt/L2-024 题解:部落是并查集模板题. 社交集群用并查集暴力有23分 坑:写了半天,发现自己并查集没怎么学明白,现在才搞懂: ...

  4. 2 weekend110的mapreduce介绍及wordcount + wordcount的编写和提交集群运行 + mr程序的本地运行模式

    把我们的简单运算逻辑,很方便地扩展到海量数据的场景下,分布式运算. Map作一些,数据的局部处理和打散工作. Reduce作一些,数据的汇总工作. 这是之前的,weekend110的hdfs输入流之源 ...

  5. 003.etcd集群部署-静态发现

    一 etcd集群概述 1.1 概述 静态启动etcd集群要求每个成员都知道集群中的另一个成员.Etcd运行在集群的每个coreos节点上,可以保证coreos集群的稳定,可靠的运行.当集群网络出现动荡 ...

  6. spark学习之IDEA配置spark并wordcount提交集群

    这篇文章包括以下内容 (1)IDEA中scala的安装 (2)hdfs简单的使用,没有写它的部署 (3) 使用scala编写简单的wordcount,输入文件和输出文件使用参数传递 (4)IDEA打包 ...

  7. Storm消费Kafka提交集群运行

    1.创建拓扑,配置KafkaSpout.Bolt KafkaTopologyBasic.java: package org.mort.storm.kafka; import org.apache.ka ...

  8. pta l3-3(社交集群)

    题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805053141925888 题意:给定n个人,以及每个人的兴趣 ...

  9. 【PTA 天梯赛】L3-003 社交集群(并查集)

    当你在社交网络平台注册时,一般总是被要求填写你的个人兴趣爱好,以便找到具有相同兴趣爱好的潜在的朋友.一个“社交集群”是指部分兴趣爱好相同的人的集合.你需要找出所有的社交集群. 输入格式: 输入在第一行 ...

随机推荐

  1. 人机ai五子棋 ——五子棋AI算法之Java实现

    人机ai五子棋 下载:chess.jar (可直接运行) 源码:https://github.com/xcr1234/chess 其实机器博弈最重要的就是打分,分数也就是权重,把棋子下到分数大的地方, ...

  2. 【SQL】T-SQL基本语法复习

    数据库基本的几个对象 数据表.视图.存储过程.索引.触发器.函数 增删改查 Insert into test(name,sex,ago) values ('陈三','男',20) Update tes ...

  3. hdu 1890 Robotic Sort(splay 区间反转+删点)

    题目链接:hdu 1890 Robotic Sort 题意: 给你n个数,每次找到第i小的数的位置,然后输出这个位置,然后将这个位置前面的数翻转一下,然后删除这个数,这样执行n次. 题解: 典型的sp ...

  4. gulp备忘

    // npm install gulp gulp-sourcemaps gulp-name gulp-notify del --save-dev // npm install gulp-ruby-sa ...

  5. static const readonly

    C#中的static 和Java中的static 简单,两者用法完全是一致的.从两方面讨论: 1. 变量是属于类的,不是实例级别的.只能通过类名调用,不能通过实例调用. 2. 如果在定义时就赋值了,那 ...

  6. SDN理解:目录

    为什么? 最近一直在学习SDN方面的知识,本着"最好的学习就是分享"的精神,记录下本系列的文章,尝试更好地去理解SDN这一正当红的技术. 如何? SDN领域现在已经充斥了大量的公司 ...

  7. JS函数调用

        function SayHello(word) { console.log(word); }   function execute(Somefunction,value) { Somefunc ...

  8. 记JavaScript的入门学习(三)

    2016.12.6晚上十点半完成JavaScript的第二章学习,看了点第三章的开头总述,都说原生js每一个知识点都可以分分钟钟让你放弃,而我在努力探索着.月末的时候就回家放假了,希望在家也可以有个小 ...

  9. wuzhicms 数据迁移策略

    1,本地的域名或ip为特殊域名或ip,勿用 127.0.0.1   或 localhost 或192.168.1.101  等 2,导出数据库,替换所有域名为新域名 3,替换所有文件域名为新域名 4, ...

  10. tomcat配置https方法

    利用tomcat服务器配置https双向认证 步骤 1.为服务器生成证书进入控制台,切换到%JAVA_HOME%/bin目录,具体操作略. 使用keytool为Tomcat生成证书,假定目标机器的域名 ...