第五题迷宫

Posted 猪八戒1.0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第五题迷宫相关的知识,希望对你有一定的参考价值。

 行列值与maze里的改一下就可

#include<bits/stdc++.h>
#include<queue>
#include<string>
using namespace std;
#define ROWS 4
#define COLS 6
string maze[ROWS+2]=
	"010000",
	"000100",
	"001001",
	"110000"
;
int dir[4][2]=1,0,0,-1,0,1,-1,0;//DLRU
char dirs[5]="DLRU";
struct node
	int x,y;	//行列
	char pos;	//方向
;

queue<node> Q;
int visited[ROWS+2][COLS+2]; //0表示未访问过
node father[ROWS+2][COLS+2];	 //每个位置[x][y]的父节点father[x][y]
int in(int tx,int ty)
	return tx>=0&&tx<ROWS&&ty>=0&&ty<COLS;

void dfs(int x,int y)

	if(x==0&&y==0)
	return;
	else
	
		dfs(father[x][y].x,father[x][y].y);
		cout<<father[x][y].pos;
	

int main()

	node start,now,next;
	int i,tx,ty;
	start.x=0,start.y=0;
	Q.push(start);
	visited[0][0]=1;
	while(!Q.empty())
		now=Q.front();	Q.pop();
		if(now.x==ROWS-1&&now.y==COLS-1)	break;
		for(i=0;i<4;i++)
		
			tx=now.x+dir[i][0];
			ty=now.y+dir[i][1];
			if(in(tx,ty)&&maze[tx][ty]=='0'&&visited[tx][ty]==0)
			
				visited[tx][ty]=1;
				father[tx][ty].x=now.x;
				father[tx][ty].y=now.y;
				father[tx][ty].pos=dirs[i];
				next.x=tx;
				next.y=ty;
				Q.push(next);
			
		
	
	dfs(ROWS-1,COLS-1);
	return 0;

以上是关于第五题迷宫的主要内容,如果未能解决你的问题,请参考以下文章

考试第五题

第五题

欧拉计划第五题

LeetCode第五题:寻找最长回文子串

CTF:第五题

CTF:第五题