PAT (Advanced Level) Practice - 1107 Social Clusters(30 分)

简介: PAT (Advanced Level) Practice - 1107 Social Clusters(30 分)

题目链接:点击打开链接

题目大意:一个“社交集群”是指部分兴趣爱好相同的人的集合。你需要找出所有的社交集群。

解题思路:并查集思路,轮到第几个人时,以它的 id 为 root,然后吸收它自己所有的兴趣爱好编号,这样就可以达到有部分兴趣爱好相同的人在一个集群里的效果。

AC 代码

#include<bits/stdc++.h>
#include<cmath>
#define mem(a,b) memset(a,b,sizeof a)
#define ssclr(ss) ss.clear(), ss.str("")
#define INF 0x3f3f3f3f
#define MOD 1000000007
using namespace std;
typedef long long ll;
int pre[2009], vis[1009], cnt[2009];
void init()
{
    for(int i=1;i<=2009;i++) pre[i]=i;
}
int findx(int x)
{
    return pre[x]==x ? x : pre[x]=findx(pre[x]);
}
void join(int x,int y)
{
    int fx=findx(x), fy=findx(y);
    if(fx!=fy) pre[fx]=fy;
}
int main()
{
    init();
    int n,k,t,id;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        id=1000+i;
        scanf("%d:",&k);
        while(k--)
        {
            scanf("%d",&t);
            join(t,id);
        }
        vis[i]=t; // 记录其中一个点即可,因为都是连结在一起的
    }
    for(int i=1;i<=n;i++)
    {
        id=findx(vis[i]);
        cnt[id]++;
    }
    sort(cnt,cnt+2009,greater<int>());
    int l;
    for(l=0;;l++) if(cnt[l]==0) break;
    printf("%d\n",l);
    for(int i=0;i<l;i++) printf("%d%c",cnt[i],i==l-1?'\n':' ');
    return 0;
}
目录
相关文章
|
12月前
|
XML JSON Java
springboot文件上传,单文件上传和多文件上传,以及数据遍历和回显
本文介绍了在Spring Boot中如何实现文件上传,包括单文件和多文件上传的实现,文件上传的表单页面创建,接收上传文件的Controller层代码编写,以及上传成功后如何在页面上遍历并显示上传的文件。同时,还涉及了`MultipartFile`类的使用和`@RequestPart`注解,以及在`application.properties`中配置文件上传的相关参数。
springboot文件上传,单文件上传和多文件上传,以及数据遍历和回显
|
Ubuntu Linux Docker
弃用Docker Desktop:在WSL2中玩转Docker之Docker Engine 部署与WSL入门
弃用Docker Desktop:在WSL2中玩转Docker之Docker Engine 部署与WSL入门
18133 4
|
开发工具
教你如何将WSL系统更换国内源?+固定路径+国内镜像源+详细教程
教你如何将WSL系统更换国内源?+固定路径+国内镜像源+详细教程
15293 2
uiu
|
Linux 网络安全 开发工具
【手把手带你操作 | 一万字总结】Git操作入门与GitHub 实践(一)
【手把手带你操作 | 一万字总结】Git操作入门与GitHub 实践(一)
uiu
332 0
【手把手带你操作 | 一万字总结】Git操作入门与GitHub 实践(一)
|
3天前
|
人工智能 运维 安全
|
1天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
5天前
|
SpringCloudAlibaba 负载均衡 Dubbo
微服务架构下Feign和Dubbo的性能大比拼,到底鹿死谁手?
本文对比分析了SpringCloudAlibaba框架下Feign与Dubbo的服务调用性能及差异。Feign基于HTTP协议,使用简单,适合轻量级微服务架构;Dubbo采用RPC通信,性能更优,支持丰富的服务治理功能。通过实际测试,Dubbo在调用性能、负载均衡和服务发现方面表现更出色。两者各有适用场景,可根据项目需求灵活选择。
396 124
微服务架构下Feign和Dubbo的性能大比拼,到底鹿死谁手?
|
8天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
748 109