AtCoder Beginner Contest 177 D Friends 并查集中寻找最大数量元素的集合

AtCoder Grand Contest 002 D - Stamp Rally 并查集+二分答案+倍增 题意 给出一个无向连通图。有q次询问,每次询问给出两个不同的点x和y,还有一个参数z。求一个最小的k使得只考虑编号不超过k的边时,x的连通块和y的连通块中的点的并集不小于z。 n,m,q<=100000 分析 首先二分一波答案。 那么现在要快速求的就是某个点只走编号不超过k的边时的连通块大小。 注意到只有最小瓶颈生成树上的边是有贡献的,所以其他的边可以忽略。 考虑按编号从小... 阅读详情

AtCoder Beginner Contest 177   比赛人数9636

AtCoder Beginner Contest 177   D   Friends   并查集中寻找最大数量元素的集合

总目录详见https://blog.csdn.net/mrcrack/article/details/104454762

在线测评地址https://atcoder.jp/contests/abc177/tasks/abc177_d

题目大意:并查集中寻找最大数量元素的集合

基本思路:并查集中寻找最大数量元素的集合

样例模拟如下:

5 3
1 2
3 4
5 1

3

(1,2,5),(3,4)

新的集合中,元素之间没有关系,那么需要按最多元素的集合进行拆分,先得到
(1),(2),(5)
再得到
(1,3),(2,4),(5)

AC代码如下:

#include <cstdio>
#include <algorithm>
#define maxn 200010
using namespace std;
int f[maxn],cnt[maxn];
int getf(int u){//找爸爸
	return f[u]==u?u:f[u]=getf(f[u]);
}
void merge(int u,int v){//合并集合
	int f1,f2;
	f1=getf(u),f2=getf(v);
	if(f1!=f2)f[f2]=f1;
}
int main(){
	int n,m,i,u,v,mx=0;
	scanf("%d%d",&n,&m);
	for(i=1;i<=n;i++)f[i]=i;
	for(i=1;i<=m;i++)scanf("%d%d",&u,&v),merge(u,v);
	for(i=1;i<=n;i++)cnt[getf(i)]++;//统计同一个父亲的集合元素的个数
	for(i=1;i<=n;i++)mx=max(mx,cnt[i]);
	printf("%d\n",mx);	
	return 0;
}

 

节卡Jaka Zu APP编程避坑指南:从频繁通讯错误到稳定Socket交互的调试心得 本文详细解析了节卡Jaka Zu APP编程中常见的通讯错误问题,并提供了从基础排查到高级调试的完整解决方案。通过优化网络配置、固件匹配、心跳机制和数据交互规范,开发者可实现稳定的Socket通讯,有效提升工业机器人操控的可靠性。文章特别针对v1.6.7.3版本的典型问题给出了实用调试技巧。 阅读详情

相关推荐

Python数据爬取超详细讲解(零基础入门,老年人都看的懂)

Python数据爬取超详细讲解(零基础入门,老年人都看的懂)

python03011的博客 3746

AtCoder Beginner Contest 279 F BOX 并查集 (大意失荆州

大意失荆州

qq_45377553的博客 686

K-means在关键词聚类中的尝试

K-means在文本聚类中的尝试 K-means算法是无监督的聚类算法。它的算法思想是:先随机选取K个对象作为初始的聚类中心。然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。一旦全部对象都被分配了,每个聚类的聚类中心会根据聚类中现有的对象被重新计算。 K-means算法的关键点在于: 初始k个聚类中心的选择 距离的计...

BigPig_LittleTail的博客 5568

Atcoder Beginner Contest 285D题(拓扑排序和并查集)

拓扑排序的题目及并查集

m0_51227361的博客 316

飞凌OK3588-C Linux R4系统下MIPI YUV摄像头CSI尺寸错误排查与极性适配方案

本文详细介绍了在飞凌OK3588-C平台的Linux R4系统下调试MIPI YUV摄像头时遇到的'csi size err'错误排查与极性适配方案。通过分析信号极性、驱动参数调整及FPGA协同调试,提供了从硬件检测到系统级调试的完整解决方案,帮助开发者快速解决类似问题。

bean的博客 254

Visual Studio 2022 社区版安装指南:从下载到配置的完整流程

本文详细介绍了Visual Studio 2022社区版的完整安装与配置流程,包括系统要求检查、官方下载步骤、工作负载选择、安装位置配置等关键环节。作为微软推出的免费集成开发环境,VS2022社区版支持多种编程语言,适合个人开发者和小型团队使用。文章还提供了常见问题解决和性能优化技巧,帮助用户高效完成开发环境搭建。

weixin_28829339的博客 865

AtCoder Beginner Contest 279-F BOX(补题)「并查集」

补题,并查集妙用。

lockheart_的博客 469

上位机图像处理和嵌入式模块部署(qmacvisual获取边界点)

【声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 在图像处理中,解决了分割的问题之后,下面就是属性信息的提取。在这其中,有一种属性是非常重要的 ,那就是外界轮廓的边界点获取。这个边界点,可以用来计算长度,也可以用来进行直线、圆的拟合,具体的用途取决于现场的实际使用场景。目前qmacvisual支持对边界点的提取,相关控件可以直接用来提取边界点。

嵌入式-老费,一个分享专业嵌入式知识的blog 875

AtCoder Beginner Contest 233 F - Swap and Sort(并查集+dfs)

题目描述: 我们有一个关于(1—N)的全排列P; 现在给出m次操作。 每次操作包含x和y。该操作可以交换Px与Py的值。 现在问你是否可以通过最多执行 5×105次操作对 P 进行排序 操作可以交换顺序。 如果可能,请给出一个这样的操作序列。 否则输出-1。 题解: 我们将交换操作抽象成图,这样我们根据并查集判断i与p[i]是否在同一联通分量之中,如果所有i与对应p[i]都可以在同一联通分量找到,我们就开始匹配。先找到叶子节点,因为只有先将叶子节点固定了,我们才能够操作他的父节点。那用两次dfs就可以了。

weixin_51423794的博客 639

书旗app字符串加密分析

本文案例是对书旗app搜索接口的请求密文进行分析和逆向。

李玺 3152

FastAPI 极简教程(偏实战,一篇搞定)

本文是一篇FastAPI实战教程,通过最少的概念讲解快速掌握FastAPI的核心功能。文章首先介绍FastAPI是基于Starlette和Pydantic的高性能Python API框架,具有自动生成文档、类型驱动校验、异步支持和依赖注入等优势。教程从安装环境开始,演示了如何创建最小项目并编写第一个"Hello World"接口。接着详细讲解了路由参数处理(Path/Query/Body)、Pydantic数据模型校验、响应模型控制、状态码设置等核心功能。在高级功能方面,重点介绍了错误处

AI天才研究院 799

AtCoder Beginner Contest 177 D.Friends

AtCoder Beginner Contest 177 D.Friends 题目链接 典型的并查集,不难发现答案就是最大的并查集的元素个数,AC代码如下: #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=2e5+5; int n,m,ans=0,father[N],sum[N]; int Findfather(int x){ return father[x]==x?x:fat

旺崽的博客 2798

ICLR 2025 | MambaPEFT: 探索针对Mamba的参数高效微调方法

通过利用海量数据构建大型模型,基于Transformer的模型生态系统已逐步确立。参数高效微调(PEFT)是一项至关重要的技术,它能以最低成本将这些模型应用于下游任务,同时实现高效的性能表现。最近,基于状态空间模型(SSM)的Mamba模型作为Transformer的潜在替代方案受到了广泛关注。尽管已经提出了许多基于Mamba的大规模模型,但如何高效地将预训练的Mamba模型应用于下游任务仍有待研究。在本文中,作者对适用于Mamba的PEFT方法展开了探索性分析。

小白学视觉 324

AtCoder Beginner Contest 177 A~D 题解

ABC177 A~D 题解 A - Don't be late B - Substring C - Sum of product of pairs D - Friends

天生我材必有用,千金散尽还复来。 8653

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

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

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

AtCoder题解—— AtCoder Beginner Contest 177 —— D - Friends

题目相关 题目链接 AtCoder Beginner Contest 177 D 题,https://atcoder.jp/contests/abc177/tasks/abc177_d。 Problem Statement There are N persons called Person 1 through Person N. You are given M facts that "Person Ai and Person Bi are friends." The same fact may be

努力中的老周的专栏 510

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

AtCoder Beginner Contest 177 D - Friends(并查集求最大环或链的长度)

题目传送 题意: 给你N个人,这n个人,有些人是朋友,有些人不是朋友(如果1和2是朋友,2和3是朋友,那么1和3也是朋友),现在问,你最少分多少组,使得每一组中的每一个人都不是朋友 思路: 其实就是求最长的环,或者一条链的最长长度,那么这几个人是肯定不能在一起的,所以这就是最少的分组,用并查集求出即可 AC代码 #include <bits/stdc++.h> inline int read(){char c = getchar();int x = 0,s = 1; while(c < '

give it a try 371

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【AtCoder1998】Stamp Rally(整体二分+并查集)

题意 我们有一个N (3&lt;=N&lt;=10^5)个结点和M(N−1≤M≤10^5)个边的无向图。 结点编号为1到N,边编号为1到M。边i连接结点ai和bi。保证图连通。在这张图上,Q(1≤Q≤10^5)对兄弟正在参加一项名为Stamp Rally的活动。 第i对Stamp Rally如下: 一个兄弟从结点xi开始,另一个从结点yi开始。(1≤xi &lt; yi≤N) 两个兄弟沿着边...

CaptainChen的博客 636

AtCoder Not so Diverse 并查集&&二分

C - Not so Diverse Time limit : 2sec / Memory limit : 256MB Score : 300 points Problem Statement Takahashi has N balls. Initially, an integer Ai is written on the i-th ball. He woul

EnjoyingAC的博客 528

AtCoder ABC335 E - Non-Decreasing Colorful Path(拓扑排序、并查集)

本题注意到可以缩点的性质后,对边进行离线,缩点后重新建图,并且要留意缩点前后的关系,而且拓扑排序时入队后结点的入度要更改,防止同个缩点多次入队。

Fun_Total的博客 1401

(AtCoder Beginner Contest 392)E Cables and Servers(并查集)

执行修改操作,因为剩下的边必然连接着同一个联通子图中的点,所以只要找到不在同一个联通子图中的点就可以直接合并(修改fa[cur])如果两个点已经连接在一起,这条边就是可能要修改的。反之,就说明要用,直接合并,这条边直接舍弃。思路简单(复习一下并查集。统计总共有几个联通子图。即需要修改个数-1条边。

2301_81172006的博客 282

Atcoder D - Friend Suggestions(并查集)

题意: 有nnn个人,mmm对双向的朋友关系,还有kkk对破裂的关系。 现在让你找iii的候选朋友,候选朋友是iii的朋友的朋友(间接朋友关系),并且还不是破裂关系。问每个iii有多少个候选朋友。 思路: 蠢死了。。。。 朋友的传递关系显然可以用并查集。我们进行dfsdfsdfs并进行合并。那么对于任意点iii来说,它所在并查集的连通块中都是它可以通过它的朋友可以到达的,但是这其中也有和它直接是朋...

一身清贫怎敢入繁华 662

【ATcoder】【DFS | 哈希 +并查集 | BFS 】Alternating Path

题目链接: 题意: 这个题目的意思是:给定一个h*w的方格内,只有' . ' 和 ' # ' 两个符号, 请问有多少条路径是  ' . '   ------&gt;  ' # '  ,其中路径中必须是 ' . ' 和 ’ # ‘ 相间。 小结: 这个题真的不会做,我当时就懵逼了,啥都不知道,然后看了网友的做法,发现原来就是找联通块,只要找到联通块就行了,这个答案就是: ans=每个联通...

Z_sea的博客 491

AtCoder Beginner Contest 293 -- D - Tying Rope(并查集)

我们通过读题可以发现是一个无向图 & 环相关 问题。本题需要计算:环连通块的数量 & 非环连通块的数量,在这里可以通过快速求解。如果我们在连接的时候发现祖先是相同的,我们就找到了一个环连通块最后我们剩下的就是非环连通块。

m0_60593173的博客 242

Atcoder Beginning Contest 292 D - Unicyclic Components (并查集)

合并完之后,可能有一些点并没有连到根上, find(i)路径压缩只会将i这个点以及向上到根的点连到根上, 但是i这个点下面的点还是之前的样子,并没有压缩.所以当用到某个点以及其根节点时, 需要find一下, 不然f[i]可能只是i这个点的父节点, 但不是他们所在连通块的根节点.并查集维护一个个连通块, 点数就是连通块的点数, 边数 == 连通块中每个点的度数的和 / 2。

weixin_57202646的博客 390

AtCoder Beginner Contest 214 (D并查集,E反悔贪心,F公共子序列DP)

题目链接:Here ABC水题, D - Sum of Maximum Weights 上图中最大权 \(9\) 对答案的贡献是这条边两边的连通块的 size 的乘积再乘以 9 受到上面的启发,我们可以把每条边按边权大小从小到大排序。对于每条边(边权记为 \(w\)),先求出当前边连接的两个 group 的 size,不妨记为 \(size_a\) 和 \(size_b\) ,再把 \(siz...

橘嘉禾 124

[Atcoder NIKKEI Contest 2019]E.Weights on Vertices and Edges(并查集)

即将退役前把之前咕掉的题解补上 题面 Score: 800800800 points There is a connected ...

domy79360的博客 243
上一篇: AtCoder Beginner Contest 177 C Sum of product of pairs 公式推导
下一篇: AtCoder Beginner Contest 177 E Coprime 线性筛素数+统计质因数数量+特判
mrcrack
博客等级 码龄15年 1072粉丝 1063原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值