【蓝桥杯2019初赛】迷宫

这道题其实想法上没有什么思维局限,但是在dfs上有一个时限问题,所以需要在dfs函数中进行一定的剪枝,并且在输入上要进行循环字符输入,当然,按字典序的话,直接在刚开始就按字典序来遍历
在这里插入图片描述

//dfs代码如下

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>

char map[50][100];
int book[50][100];
int mins[50][100];//此时的mins数组是记录在这一点时的最小步数是多少 
char road[1000];
char road1[1000];
int dx[4]={
   
   1,0,0,-1};
int dy[4]={
   
   0,-1,1,0};
char dir[4]={
   
   'D','L','R','U'};
int min=1000;

void dfs(int x,int y,int step)
{
   
   
	int i,j,kx,ky;
	if(x==29&&y==49){
   
   
		if(step<min){
   
   
			min=step;
			for(i=0;i<min;i++){
   
   
				road1[i]=road[i];
				//printf("%c     ",road1[i]);
			}
		}
		return;
	}
	for(i=0;i<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值