一、题目
著名设计师小蓝给蓝桥小学设计了一个教学楼。
蓝桥小学经常下雨,所以校长希望教学楼任何地方都可以连通到其它地方。
小蓝给出了教学楼的平面图,用一个 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] = {