作业介绍

#include<iostream>
using namespace std;

// 标记数组
bool vis[505][505];
// 地图数组
char mp[505][505];
// 偏移数组:上 下 左 右
int dx[4] = {-1, 1, 0, 0};
int dy[4] = { 0, 0,-1, 1};
// n,m表示地图大小
int n, m;
// 定义终点坐标
int ex,ey;
// flag表示能不能走到终点
bool flag = 0;

// 深搜dfs(x,y) 表示能不能从起点(x,y)走到终点
void dfs(int x, int y){
	// 判断是否走到终点
	if(x==ex && y==ey){
		flag = 1;
		return;
	}
	// 递归到四个方向: 
	for(int i=0;i<4;i++){
		int xx = x + dx[i];
		int yy = y + dy[i];
		// 判断下一个坐标(xx, yy),是否可以到达
		// 不能走出地图边界   障碍不能走   走过的不能走
		if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&mp[xx][yy]!='#'&&vis[xx][yy]==0){
			vis[xx][yy] = 1;
			dfs(xx, yy);
		}
	}
}
状态
已结束
题目
4
开始时间
2025-2-23 9:00
截止时间
2025-3-3 23:59
可延期
24 小时