深度优先搜索之迷宫寻宝-创新互联

迷宫寻宝

有一个N行M列由单元格组成的迷宫.迷宫中埋藏有宝物,每一个单元格可能为空地,为障碍物,为宝藏.现在请你写一个程序求从起点到宝藏的最短步数.
输入格式:第一行输入N M表示地图的行和列.后面N行输入M个0 或1,0表示空地,1表示障碍物.最后一行输入4个数,前俩个是起点的xy坐标,后俩个是终点的xy坐标.

成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、网站建设、兴安盟乌兰浩特网络推广、微信小程序定制开发、兴安盟乌兰浩特网络营销、兴安盟乌兰浩特企业策划、兴安盟乌兰浩特品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;成都创新互联公司为所有大学生创业者提供兴安盟乌兰浩特建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com代码实现`
#includeint a[100][100],N,M,step =0,X,Y,min=500,book[100][100];//用数组a存储地图,数组book标记,min记录最小步数
void xunbao(int x,int y,int step)
{int x1,y1,b[4][2]={{1,0},{0,1},{-1,0},{1,0}};//四种走法上下左右,顺序无所谓
	if(x==X&&y==Y){//判断是否走到宝藏处
		if (step	min=step;//更新min
			return;
		}	
	}
	for(int i=0;i<4;i++){//枚举四种走法
		x1=x+b[i][0];
		y1=y+b[i][1];
		if(x1<0||y1<0||x1>M-1||y1>N-1){//判断是否出界
			continue;
		}
		if(a[x1][y1]==0&&book[x1][y1]==0){//判断是否有障碍物或者走过
			book[x1][y1]=1;
			xunbao(x1,y1,step+1);
			book[x1][y1]=0;
		}
	}
	return;                            
}
int main()
{int x,y;
	scanf("%d%d",&N,&M);
	for(int i=0;ifor(int j=0;j	scanf("%d",&a[i][j]);
		}
		scanf("\n");
	}
	scanf("%d%d%d%d",&x,&y,&X,&Y);
	xunbao(0,0,0);
	printf("%d",min);
}可以自定义一个地图去验证代码的准确性

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧

新闻标题:深度优先搜索之迷宫寻宝-创新互联
标题链接:https://www.cdcxhl.com/article30/dejcpo.html

成都网站建设公司_创新互联,为您提供域名注册网站建设营销型网站建设商城网站移动网站建设网站制作

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

搜索引擎优化