L2-024 部落

L2-024 部落 (25 分) 并查集 L2-024 部落 题目代码 题目 L2-024 部落 (25 分) 在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。 输入格式: 输入在第一行给出一个正整数N(≤10^4),是已知小圈子的个数。随后N行,每行按下列格式给出一个小圈子里的人: K P[1] P[2] ⋯ P[K] 其中K是小圈子里的人数,P[i](i=1,⋯,K)是小圈子里每个人的 阅读详情

L2-024 部落
在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。

输入格式:

输入在第一行给出一个正整数N(<= 10^4^),是已知小圈子的个数。随后N行,每行按下列格式给出一个小圈子里的人:

K P[1] P[2] … P[K]

其中K是小圈子里的人数,P[i](i=1, .., K)是小圈子里每个人的编号。这里所有人的编号从1开始连续编号,最大编号不会超过10^4^。

之后一行给出一个非负整数Q(<= 10^4^),是查询次数。随后Q行,每行给出一对被查询的人的编号。

输出格式:

首先在一行中输出这个社区的总人数、以及互不相交的部落的个数。随后对每一次查询,如果他们属于同一个部落,则在一行中输出“Y”,否则输出“N”。

输入样例:

4
3 10 1 2
2 3 4
4 1 5 7 8
3 9 6 4
2
10 5
3 7
输出样例:

10 2
Y
N

解题思路:
1.用并查集,来处理部落。用set计算总人数和部落个数。
2.根据查询,判断是否是同一个并查集。
3.findfather()函数要用路径压缩,不然第四个点会超时。

#include<cstdio> 
#include<set>
#include<algorithm>
using namespace std;
const int maxn=1e4+10;
int father[maxn];
int findfather(int x){  //路径压缩,不写第四个点会超时 
    int a=x;
    while(x!=father[x])
        x=father[x];
    while(a!=father[a]){
        int z=a;
        a=father[a];
        father[z]=x;
    }
    return x;
}
void Union(int a,int b) {
    int fa=findfather(a); 
    int fb=findfather(b);
    if(fa!=fb)
        father[fa]=fb;
}
int main(){
    for(int i=0;i<maxn;i++)
        father[i]=i;
    int n,k,x,y,q;
    set<int>s,ss;
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d %d",&k,&x);
        s.insert(x) ;
        for(int j=1;j<k;j++){
            scanf("%d",&y);
            s.insert(y) ;
            Union(x,y);
        }
    }
    for(set<int>::iterator it=s.begin() ;it!=s.end() ;it++){
        ss.insert(findfather(*it)) ;
    }
    printf("%d %d\n",s.size() ,ss.size() );
    scanf("%d",&q);
    int a,b;
    for(int i=0;i<q;i++){
        scanf("%d%d",&a,&b);
        if(findfather(a)==findfather(b))
            printf("Y\n");
        else
            printf("N\n");
    }
    return 0;
}
L2-024 部落(并查集) 题目链接:L2-024 部落 考查知识:并查集 题意描述:纯纯并查集 具体代码#include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e5+10; int fa[N]; void init(int n){ for(int i=1;i<=N;i++)//[1,N] fa[i]=i; } int find(int x){ if(x==fa[x])return x; els. 阅读详情

相关推荐

【团体程序设计天梯赛】往年关键真题 L2-024 部落 并查集 & L2-025 分而治之 并查集 详细分析&完整AC代码

L2-024 部落 并查集 在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。 L2-025 分而治之 并查集 分而治之,各个击破是兵家常用的策略之一。在战争中,我们希望首先攻下敌方的部分城市,使其剩余的城市变成孤立无援,然后再分头各个击破。为此参谋部提供了若干打击方案。本题就请你编写程序,判断每个方案的可行性。

Obliviate的博客 808

L2-024. 部落

L2-024. 部落 时间限制 120 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个

nhpper的博客 1678

Coze工作流实战:Coze一键生成沉浸式历史故事视频

【coze工作流实战】一键生成火爆的沉浸式历史故事视频!短短3分钟,顶替你3天的工作量!

bickys的博客 1004

【L2-024 部落】天梯赛L2系列详解

L2-024 部落详解,一口气弄懂:并查集+压缩路径!

weixin_51637957的博客 1891

esp32 python开发环境搭建_eclipse esp32开发环境搭建

安装方法基本是按照官网提供的方法来操作https://github.com/espressif/idf-eclipse-plugin#GettingStarted但是官网的方法安装之后还是不能编译成功的,第一次编译会出现一下问题问题1:Building in: E:\eclipse-workspace\helloworlk\buildcmake -G Ninja -DCMAKE_TOOLCHAIN...

weixin_39978276的博客 1263

物联网开发笔记(34)- 使用Micropython开发ESP32开发板之控制步进电机(28BYJ-48)

使用Micropython开发ESP32开发板之控制步进电机(28BYJ-48)

zhusongziye的博客 1万+

L2-024 部落 C++(并查集)

题目地址:https://pintia.cn/problem-sets/994805046380707840/problems/994805056736444416 题目: 在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。 输入格式...

做题记录 661

[学习笔记]Esp32 + 4G模块,随身wifi,ppp拨号上网

Esp32S3 + 4G模块制作随身WIFI教程

weixin_45595548的博客 7418

L2-024 部落(pta | 并查集讲解)

在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。

Thirty_Bob的博客 527

Qwen2.5-VL多模态微调超参数深度解析(上):训练流程与优化策略的量化机制分析

上篇文章通过系统化的对比实验,回答了多模态微调中的三个基础问题:“选什么方法”(LoRA/Full/Freeze/OFT对比)、“用什么配置”(60+组超参数组合)、“达到什么效果”(ROUGE-L/BLEU-4指标)。这些结果为后续工作奠定了实验基线,但也留下了更深层的疑问:为何相同方法在不同数据集上表现迥异?为何某些超参数的微小调整会引发性能剧变?如何在未见过的任务上快速找到最优配置?本文是对前文实验数据的二次挖掘与机理解析。我们将关注点从"做了什么实验"转移到"实验揭示了什么规律",实验视角从"结果对

羊城迷鹿的博客 1007

10.嵌入式控制器EC实战 GPIO开发流程

文章目录1.General Control Register (GCR),通用控制寄存器,地址0x1602.GPDRA—GPDRJ端口数据寄存器组(共10组)3.Port Control n Registers (GPCRn, n = A0-I7),端口控制寄存器4.GPIO端口编程指导编程步骤端口初始化使用InitGPIOReg数据结构初始化所有端口默认工作模式读取输入引脚的值(STATE_ACin()): IT8502中各个引脚的描述见下表所示: 在嵌入式控制器EC的IT8502主控芯片中,通过芯片的

qq_30135687的博客 2285

【L2-024 部落】

并查集,需要额外统计合法节点个数和并查集个数。

2302_81229310的博客 174

Android车载蓝牙开发全攻略:从基础到高级优化

本文系统介绍了Android车载蓝牙开发的核心技术与实践指南。文章首先阐述了蓝牙在智能汽车中的关键作用,包括免提通话、音频流媒体等应用场景。随后详细解析了蓝牙协议基础,重点介绍了HFP、A2DP等车载常用协议。开发实战部分提供了设备发现、连接、数据传输的完整代码示例,并融入多线程和内存优化技巧。通过真实车载案例,展示了启动时间、流畅度和资源使用的优化策略。最后针对面试需求,提供了专业的技术问答,涵盖蓝牙开发全流程。全文紧密结合Android车载开发职位要求,为开发者提供了一套完整的蓝牙技术解决方案。

郑伟强dev的专栏 119

【GPLT】L2-024 部落

题目描述: 在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。 输入描述: 输入在第一行给出一个正整数N(≤10​4​​),是已知小圈子的个数。随后N行,每行按下列格式给出一个小圈子里的人: KP[1]P[2]⋯P[K] ...

麦芽雪冷萃 2758

裂缝二维检测:裂缝的长度和宽度检测

这一节,我们需要去整合一下前面的代码,在进行长度和宽度的测量时,需要裂缝的类型、个数、面积的帮助。这一章是本专栏的核心部分。以上代码我均试过,由于本人能力有限,看不懂代码,最终还是没有采用,使用的是最普通检测宽度的方法,即求得骨架总长度后,用总面积求取平均宽度。

m0_62919535的博客 4242

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

天梯赛 L2-024 部落 (25 分) 并查集

天梯赛 L2-024 部落 (25 分) 并查集

MingLe_Z的博客 318

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

L2_024部落

L2-024 部落 在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。 输入格式: 输入在第一行给出一个正整数N(≤10^4),是已知小圈子的个数。随后N行,每行按下列格式给出一个小圈子里的人: K P[1] P[2] ⋯ P[K] 其...

qq_41697164的博客 174

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

天梯赛 L2-024 部落

一个并查集题目,难点就在于统计总人数,使用map即可,还有需要注意的是编号不一定是小于N的,小于10000的,需要注意。

m0_74237658的博客 275

PAT L2-024 部落

要解决这个问题就要用的并查集算法了,先将有关系的所有人放入一个集合,然后查询一共有多少个部落以及两个人是否在同一个部落。

2402_83048858的博客 22

L2-024 部落 并查集

L2-024部落(25 分) 在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。 输入格式: 输入在第一行给出一个正整数N(≤10​4​​),是已知小圈子的个数。随后N行,每行按下列格式给出一个小圈子里的人: KP[1]P[...

请赐教 284

L2-024 部落 (25 分)

L2-024 部落 (25 分) 题目链接 题意 思路 先初始化,将同属于一个部落的人进行合并,然后用set计算共有多少人,再判断有多少个互不相交的部落,再遍历所有人如果那个人的祖先就是自己,多一个部落,然后任意两个人如果祖先相同就是同一部落 坑点 1.要先将第一个人存入部落方便后面的合并 代码 #include<bits/stdc++.h> using namespace std; int fa[10005]; int find(int i)//利用并查集查找 { if

qq_63324568的博客 1299
上一篇: L2-023 图着色问题
下一篇: L2-025 分而治之
ChenyutingZJU
博客等级 码龄10年 18粉丝 248原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值