联通块

连通块(c++) 进行深度优先搜索的次数就是图中的连通块个数,如果我们在每次进行深度优先搜索时,对访问过的点进行不同的标记,就可以记录每个连通块内的顶点有哪些了,也可以跟迷宫问题时一样求解连通块大小,最大连通块等问题。其实之前在迷宫问题的时候,我们谈过连通块,这两个概念其实是一样的,正如本章最开始所说,我们可以把迷宫画成一般的图的样子,而且画出来就是无向图。在无向图上,我们可以利用 DFS 可以求连通块的数量。形象一点说,一个连通块就是一些能互相到达的点形成的图上的一块。在迷宫上的连通块也就是在这个图上的连通块。 阅读详情
联通块

【题目描述】
一个n * m的方格图,一些格子被涂成了黑色,在方格图中被标为1,白色格子标为0。问有多少个四连通的黑色格子连通块。四连通的黑色格子连通块指的是一片由黑色格子组成的区域,其中的每个黑色格子能通过四连通的走法(上下左右),只走黑色格子,到达该联通块中的其它黑色格子。

【输入】
第一行两个整数n,m(1≤n,m≤100),表示一个n * m的方格图。

接下来n行,每行m个整数,分别为0或1,表示这个格子是黑色还是白色。

【输出】
一行一个整数ans,表示图中有ans个黑色格子连通块。


#include <iostream>
#include <stdio.h>
using namespace std;
const int b[4][2]={{0,1},{0,-1},{1,0},{-1,0}};
const int N=105;
int a[N][N];
bool p[N][N];//存是否被涂过 
struct queue{
	int x,y;
}q[N*N+1];
int n,m,ans;
void bfs(int x,int y)
{
	int k=0;
	int r=1;
	int x1,y1;
	q[1].x=x;
	q[1].y=y;
	while(k<r)
	{
		k++;
		for(int i=0;i<4;i++)
		{
			x1=q[k].x+b[i][0];
			y1=q[k].y+b[i][1];//更新起始格子
			if( x1<0 || y1<0 || x1>=n || y1>=m || !a[x1][y1] || p[x1][y1] )
			{
				continue;
			}
			p[x1][y1]=1;
			r++;
			q[r].x=x1;
			q[r].y=y1;
		}
	}
}
int main(){
	scanf("%d%d",&n,&m);
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<m;j++)
		{
			scanf("%d",&a[i][j]);	
		}
	}
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<m;j++)
		{
			if( a[i][j] && !p[i][j])
			{
				ans++;
				bfs(i,j);
			}
		}
	} 
	printf("%d",ans);
	return 0;
}
求联通块个数 在n*m方阵中,与点(i,j)前后左右和斜对角相邻联通,则这一整块都属于联通块。输入n、m,和方阵阵n*m。0表示不连通,其它数字表示联通,求整个方阵联通块数目。 #include&lt;cstdio&gt; #include&lt;iostream&gt; #include&lt;algorithm&gt; #include&lt;cstring&gt; using namespace std... 阅读详情

相关推荐

DFS求联通块

题目输入一个m行n列的字符矩阵,只要有两个‘@’相邻就能组成一个联通块,如下面的字符矩阵有2个联通块****@* @@*@*@**@@@@*@@@**@分析将字符矩阵看作一个图,用DFS对图中的字符遍历,从每个’@’出发,遍历’@’周围的字符。每次访问时给该位置打上块标志,表示已访问,从而避免多次访问同一个位置。代码#include<iostream> #include<windows.h> #de

God Liao On The Way 3354

连通块(信息学奥赛一本通-T1335)

【题目描述】 一个n * m的方格图,一些格子被涂成了黑色,在方格图中被标为1,白色格子标为0。问有多少个四连通的黑色格子连通块。四连通的黑色格子连通块指的是一片由黑色格子组成的区域,其中的每个黑色格子能通过四连通的走法(上下左右),只走黑色格子,到达该联通块中的其它黑色格子。 【输入】 第一行两个整数n,m(1≤n,m≤100),表示一个n * m的方格图。 接下来n行,每行m个整数,...

Alex_McAvoy的博客 5465

颜色联通块

引子: 额~今天我们昨天才学了区间DP, 还没来得及复习就迎来了老师最喜欢的——我们最喜欢的模拟考试。但是,好像题已经超乎了我的想象。 啊啊啊啊啊啊啊啊啊!!! 后面两道没怎么读懂题啊! First One— 颜色联通块 题目描述: N 个方块排成一排,第 i 个颜色为 Ci 。定义一个颜色联通块 [l,r] 当且仅当 l 和 r 之间(包括l,r)所有方块的颜色相同。 例如 [3,3,3] 有 1 个颜色联通块,[5,2,4,4] 有 3 个颜色联通块。 现在你可以选定一个起始位置 p ,每次将 p 所在

C202207LYX的博客 589

1335:【例2-4】连通块

信息学奥赛一本通 1335:【例2-4】连通块

pheatonhb的博客 1160

HDU 6035 Colorful Tree 树上统计 联通块

地址http://acm.hdu.edu.cn/showproblem.php?pid=6035题意树上每个节点有一种颜色ci(1<=ci<=n)c_i (1 <= c_i <= n),2<=n<=2∗1052 <= n <= 2 * 10^5,每个点对的路径值为这个路径上的颜色种数,求树上所有路径(n∗(n−1)/2n * (n - 1) / 2条路径)的长度和思路直接计算每个颜色对答案的贡献自己

Brassica_的菜园 2326

67、1335:【例2-4】连通块+书画相关链接(二十一)-2020.01.27a.pdf

67、1335:【例2-4】连通块+书画相关链接(二十一)-2020.01.27a

BD202403 联通块

不难想到这里可以用dfs函数递归实现,我们可以使用vector数组,将所有棋子的坐标存入数组当中,这样一来vector数组就存入了整个联通块的信息,在每一次递归时,遍历整个vector数组,对每个棋子周围的4个格子进行判断,看其是否为空(没有棋子);我们在棋盘上放棋子,棋子放上去之后会构成新的联通块,这个新构成的联通块一定是包含在棋盘内,而且棋子还得是一个一个往上放,而放完棋子后紧接着就要对新联通块进行检查,看他是否包含在棋盘且是符合题意的“新联通块”,而后再继续向棋盘上放更多的棋子。

xyk050216的博客 804

ltk1_广度优先算法求连通块_连通块方格图_连通图方格图_

一个n * m的方格图,一些格子被涂成了黑色,在方格图中被标为1,白色格子标为0。问有多少个四连通的黑色格子连通块。四连通的黑色格子连通块指的是一片由黑色格子组成的区域,其中的每个黑色格子能通过四连通的走法(上下左右),只走黑色格子,到达该联通块中的其它黑色格子。此题目可以采用广度优先搜索算法来解决,除了找到连通块的个数,还可以找到每个连通块有哪些点,这个算法在图像解析中有一定的用途。

颜色联通块—题解

这道题很简单 看一看题目 题目描述 N 个方块排成一排,第 i 个颜色为 Ci 。定义一个颜色联通块 [l,r] 当且仅当 l 和 r 之间(包括l,r)所有方块的颜色相同。 例如 [3,3,3] 有 1 个颜色联通块,[5,2,4,4] 有 3 个颜色联通块。 现在你可以选定一个起始位置 p ,每次将 p 所在颜色联通块的所有方块颜色改成另一种。这个操作可能将两个颜色联通块合并成一个。问最少需要多少步,能让 [1,n] 变成一个颜色联通块。 输入格式 输入的第一行包含一个正整数 N,(1 <= N

C202220wanghaoyu的博客 497

数控弯管机xyz转换ybc的算法_数控弯管机技术的更新和应用.pdf

您所在位置:网站首页 > 海量文档&nbsp>&nbsp汽车/机械/制造&nbsp>&nbsp机械/模具设计数控弯管机技术的更新和应用.pdf3页本文档一共被下载:次,您可全文免费在线阅读后下载本文档。 下载提示1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。2.该文档所...

weixin_31493101的博客 1520

易康eCognition9.0分类|规则集和机器学习的方法的面向对象的多尺度分割分类

基于易康eCognition9.0软件的规则集和机器学习的方法的面向对象的多尺度分割分类

weixin_46493028的博客 1万+

01联通块求解——bfs

##1.问题描述: ##2.算法分析: 其实这道题目就是一个让我们求出一共有多少个联通块问题; 首先我们要理解怎样才算是联通块,比如单个的1四周被0包围,算作联通块,或者1连着的1两个1算作一个联通块,只要1的上下左右任一个方向存在1都算作一个联通块,比如样例一: 大概就这么个意思。 那么我们该怎么做了,比较容易就想到搜索了,我们枚举每一个位置的元素,如果为0,则跳过,如果为1开始搜索。(...

ly's Blog 1176

基因组研究之单倍型T2T基因组(一)

单倍型T2T基因组(Haplotype-resolved T2T genome)是一种高精度、高连续性、高完整性的基因组组装技术,它能够提供从端粒到端粒的完整基因组序列,包括所有的基因和非编码序列。完整覆盖:T2T基因组覆盖从端粒到端粒的染色体序列,包含所有的基因和非编码序列,包括以往难以解析的端粒和着丝粒区域。单倍型解析:单倍型T2T基因组能够区分来自父母本的遗传信息,进行亚基因组不对称演化研究,挖掘单倍型等位基因间的表达差异,这对于重测序、性状定位、进化、基因功能、基因编辑等研究至关重要。

2401_89507557的博客 2438

树上第k大联通块

题意:求树上第k大联通块 n,k<=1e5 考虑转化为k短路的形式。 也就是要建出一张图是的这条图上每一条S到T的路径都能代表一个联通块。 点分治建图 递归下去,假定每个子树的所有联通块中都可以被表示为一条s'--->t'的路径。 合并的时候新建关于当前分治重心的S点和T点。 S->s1->t1->s2->t2-s3->t3->T。 其中S->...

weixin_30662109的博客 351

别再手动算考勤了!教你用Python+企业微信API自动生成月度报表

本文介绍如何利用Python和企业微信API构建自动化考勤分析系统,实现从数据获取到可视化报表生成的全流程自动化。通过企业微信打卡接口获取数据,使用Pandas进行高效清洗和分析,并生成Excel和HTML格式的报表,大幅提升考勤统计效率。系统支持智能判定考勤状态,如迟到、早退等,并可通过定时任务实现月度自动化运行。

weixin_27875131的博客 287

数码管动态扫描避坑指南:如何用188芯片实现50Hz无闪烁显示?

本文深入解析188数码管动态扫描技术,提供工业级无闪烁显示方案。通过优化轮询扫描机制、硬件电路设计和软件架构,实现50Hz高刷新率显示,解决亮度不均和鬼影问题,适用于医疗设备和工业控制面板等高要求场景。

hhh00的博客 974

重建 关于联通块的做法

重建 A国拥有N个城市编号为0~N-1,这N个城市由N条双向道路所连接形成了一个环。环上城市的编号沿顺时针方向递增(除第N-1号城市外)。 不幸的是,A国遭遇了一场地震,摧毁了所有N个城市的电力系统。在地震后的K天中,第i天会由城市Ci派出一支重建队伍,他们从第Ci个城市出发,找到顺时针方向上第一个电力系统未被修复的城市并修复它。在该城市电力系统被修复后,所有与它有联系的城市将会向

CutieDeng的博客 566

使用qt+PaddleOCR做一个OCR软件demo

文章目录使用qt+PaddleOCR做一个OCR软件demo效果展示1 建立环境1.1 vs项目环境1.2 qtcreator项目环境1.2.1 源代码整理1.2.2 依赖项整理如下1.2.3 模型文件如下1.2.4 在.pro文件中设置依赖库的模式1.2.5 pro文件中添加.h和.lib2 在工程代码中添加截图功能2.1 新建截图类并连接信号2.2 QImage转cv::Mat3 在工程代码中集成PaddleOCR3.1 初始化PaddleOCR3.2 修改文字识别类的run函数,增加一个返回结果的值的

ShareProgress的博客 9305

联通块的权:求解网格矩阵中联通块的最大权值

希望这篇博客能够帮助大家理解如何用BFS解决联通块问题。如果有任何疑问或建议,欢迎在评论区留言讨论。

loopdeloop的博客 498

用 ABAP CDS 把树建起来:Hierarchy 的建模、调试与消费全流程

CDS Hierarchy 将树形数据结构作为一等公民引入 ABAP 开发,通过定义父子关联、根节点条件和兄弟排序规则,让数据库原生支持层级查询。相比传统递归处理方式,它能避免性能瓶颈,提供$node系统字段描述节点结构信息,并支持与SAP UI框架无缝集成。这种方法简化了组织架构、成本中心等业务场景的层级数据处理,使开发人员能够专注于业务逻辑而非底层实现。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 204

042、双管反激的电压应力优势

【摘要】本文通过300W工业电源炸管案例,对比分析了单管与双管反激拓扑的电压应力差异。单管反激因漏感能量难以处理,尖峰电压可达1180V,需依赖RCD吸收电路但效率低下;双管反激通过钳位二极管将漏极电压限制在输入电压水平(实测650V),能量回馈使效率提升2-3%。虽增加两个MOS管,但可选用600V器件(单管需1200V),总成本反降15%以上。作者建议150W以上或高压输入场景优先采用双管反激,其确定的电压应力可显著提升可靠性,避免单管反激的参数玄学问题。关键设计要点包括快恢复二极管选型、紧凑布局及漏感

Jack010169的博客 78

【BZOJ1015 || JSOI2008】求联通块的个数

题面:给定一个无向图,求联通块的个数 用并查集是非常好做的 判代表元个数即可 进阶:给定一个无向图,求联通块个数。 每轮删除一个点,与之连接的边断开,输出联通块个数。依然是并查集,不过要逆着做。 建图前只填加不删的点和必要的边,在每轮添加一个点,求出联通块个数,倒序输出即可。 http://61.187.179.132/JudgeOnline/problem.php?id=1

十山尃夆 1908

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

链表加bfs求补图联通块

https://oj.neu.edu.cn/problem/1387 给一个点数N <= 100000, 边 <= 1000000的无向图,求补图的联通块数,以及每个块包含的点数 由于点数太大,补图会是稠密图,甚至建立补图都要O(n^2),只能挖掘一下联通块,bfs,补图的性质,从原图入手求补图的联通块: 在原图中不直接相邻的点,在补图中一定属于同一个联通块 每...

258

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

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

【题解】颜色联通块

题目 题目描述 NNN 个方块排成一排,第 iii 个颜色为 CiC_iCi​ 。定义一个颜色联通块 [l,r][l,r][l,r] 当且仅当 lll 和 rrr 之间(包括lll,rrr)所有方块的颜色相同。 例如 [3,3,3][3,3,3][3,3,3] 有 111 个颜色联通块,[5,2,4,4][5,2,4,4][5,2,4,4] 有 333 个颜色联通块。 现在你可以选定一个起始位置 ppp ,每次将 ppp 所在颜色联通块的所有方块颜色改成另一种。这个操作可能将两个颜色联通块合并成一个。问最少

tanfuwen_的博客 538

并查集求联通块个数【洛谷P1197】

传送门:https://www.luogu.org/problemnew/show/P1197 并查集求联通块个数。 这个题是每摧毁一个点求一次联通块的个数,并查集不容易维护这种摧毁更新的,相反的,并查集可以很好的维护每安装一个点更新一次这种问题。摧毁和安装是对立的,既然按顺序摧毁,我们就逆序安装。 首先要算出没安装前(也就是摧毁之后)的联通块的个数。怎么求呢,我们在记录图的边的时候记录一下...

KIKO_caoyue的博客 1660
上一篇: 大整数开方
下一篇: 最小函数值
Mintind
博客等级 码龄8年 151粉丝 106原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值