news 2026/5/2 9:33:16

题解:AcWing 6048 家庭问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
题解:AcWing 6048 家庭问题

本文分享的必刷题目是从蓝桥云课洛谷AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。

欢迎大家订阅我的专栏:算法题解:C++与Python实现!

附上汇总贴:算法竞赛备考冲刺必刷题(C++) | 汇总


【题目来源】

AcWing:6048. 家庭问题 - AcWing题库

【题目描述】

n nn个人,编号分别为1 , 2 , … , n 1,2,\dots,n1,2,,n,另另外还知道存在K KK个关系。

一个关系的表达为二元组( α , β ) (\alpha,\beta)(α,β)形式,表示α , β \alpha,\betaα,β为同一家庭的成员。

问题:当n , k n,kn,kk kk个关系给出之后,求出其中共有多少个家庭、最大的家庭中有多少人。

例如:n = 6 n=6n=6k = 3 k=3k=3,三个关系为:( 1 , 2 ) (1,2)(1,2)( 1 , 3 ) (1,3)(1,3)( 4 , 5 ) (4,5)(4,5)

此时,6 66个人组成三个家庭,即:{ 1 , 2 , 3 } \{1,2,3\}{1,2,3}为一个家庭,{ 4 , 5 } \{4,5\}{4,5}为一个家庭,{ 6 } \{6\}{6}单独为一个家庭,第一个家庭的人数最多。

【输入】

文件的第一行为n , k n,kn,k二个整数;

接下来的k kk行,每行二个整数(用空格分隔)表示关系。

【输出】

二个整数,分别表示家庭个数和最大家庭人数。

【输入样例】

6 3 1 2 1 3 4 5

【输出样例】

3 3

【解题思路】

【算法标签】

#图的遍历-BFS#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;// 定义常量 N 和 M,分别表示节点数和边数的最大值constintN=105,M=1010*2;// 使用 vector 存储图的邻接表vector<int>h[N];// 使用队列进行广度优先搜索queue<int>q;// 使用布尔数组记录节点是否被访问过boolst[N];// ans1 记录连通分量的数量,ans2 记录最大的连通分量的大小intans1,ans2;// n 表示节点数,m 表示边数intn,m;// 广度优先搜索函数,返回从节点 x 开始的连通分量的大小intbfs(intx){ints=1;// 初始化连通分量大小为 1q.push(x);// 将节点 x 入队st[x]=true;// 标记节点 x 已访问while(!q.empty()){intnd=q.front();q.pop();// 取出队首元素并出队for(inti=0;i<h[nd].size();i++){intj=h[nd][i];// 获取相邻节点if(!st[j]){// 如果相邻节点未被访问过q.push(j);// 将相邻节点入队st[j]=true;// 标记相邻节点已访问s++;// 连通分量大小加 1}}}returns;// 返回连通分量的大小}intmain(){cin>>n>>m;// 输入节点数和边数for(inti=1;i<=m;i++){inta,b;cin>>a>>b;// 输入边的两个端点h[a].push_back(b);// 在邻接表中添加边 a -> bh[b].push_back(a);// 在邻接表中添加边 b -> a}for(inti=1;i<=n;i++){if(!st[i]){// 如果节点 i 未被访问过ans1++;// 连通分量数量加 1ans2=max(ans2,bfs(i));// 更新最大连通分量的大小}}cout<<ans1<<" "<<ans2<<endl;// 输出连通分量的数量和最大连通分量的大小return0;}

【运行结果】

6 3 1 2 1 3 4 5 3 3
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/2 9:29:23

腾讯AI的时代之问:姚顺雨是不是另一个张小龙?

作者&#xff1a;Evin编辑&#xff1a;刘致呈审核&#xff1a;徐徐出品&#xff1a;互联网江湖腾讯AI&#xff0c;有了新进展。姚顺雨从OpenAI加入腾讯后&#xff0c;推出了首个成果&#xff1a;开源大模型混元Hy3 preview语言模型。Hy3.0 Preview开源模型用比混元2.0更小的参数…

作者头像 李华
网站建设 2026/5/2 9:28:24

SAP ABAP新手避坑指南:Tabstrip分页签控件里子屏幕数据为啥会“丢”?

SAP ABAP Tabstrip控件数据丢失问题深度解析与实战解决方案 在SAP ABAP屏幕开发中&#xff0c;Tabstrip分页签控件的使用频率极高&#xff0c;但许多开发者在处理主屏幕与子屏幕(Subscreen)间的数据传递时&#xff0c;都会遇到一个令人头疼的问题——输入的数据在切换标签或执行…

作者头像 李华
网站建设 2026/5/2 9:20:53

数字人视频生成技术:多模态驱动与实时渲染优化

1. 项目概述&#xff1a;数字人视频生成的技术跃迁 去年我在参与某虚拟主播项目时&#xff0c;第一次接触到KlingAvatar 1.0的技术方案。当时需要连续工作72小时调整嘴型同步参数&#xff0c;而如今2.0版本的多模态驱动方案&#xff0c;已经能实现输入一段语音就自动生成匹配的…

作者头像 李华