平面图判连通 蓝桥杯模拟赛题

该博客介绍了蓝桥杯比赛中的一道题目,涉及平面图的连通性判断。通过分析,博主提出从第一个1开始进行深度优先搜索(DFS),检查是否能遍历所有1来判断图是否连通。博客提供了代码实现,并提醒注意DFS的递归思路和在遍历时避免影响坐标值的注意事项。
摘要由CSDN通过智能技术生成

一、题目

著名设计师小蓝给蓝桥小学设计了一个教学楼。  
蓝桥小学经常下雨,所以校长希望教学楼任何地方都可以连通到其它地方。  
小蓝给出了教学楼的平面图,用一个 nn 行 mm 列的 0101 矩阵表示,其中 00 表示空地,11 表示教学 楼。两个相邻的 11 (上下相邻或左右相邻)之间互相可达。  
请帮小蓝检查一下,是否教学楼的任意两个地方都可以连通到其它地方。

输入描述
输入的第一行包含两个整数 n, mn,m,用一个空格分隔。

接下来 nn 行,每行一个长度为 mm 的 0101 串,表示教学楼的平面图。

输出描述
如果满足要求,输出“YES”,否则输出“NO”,请注意字母全部都是大写。

输入输出样例
输入

5 6
111111
110011
011000
001111
111000

输出

YES

二、分析

这是一个平面图判连通问题,思路是从第一个1出发,dfs,看是否能走遍所有1。

三、代码

#include <iostream>
using namespace std;

int n, m,num = 0,cnt = 0;
char map[500][500] = {
    0 };	//存放地图信息
int vis[500][500] = {
    0 };	//标志位

//方向向量: 下上右左
int dx[4] = {
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值