Poj 3083 Children of the Candy Corn

该博客介绍了POJ 3083 Children of the Candy Corn问题,强调在迷宫中始终保持向左或向右行走一定能找到出口。博主提供了通过深度优先搜索(DFS)和广度优先搜索(BFS)来求解问题的方法,分别计算出始终向左、向右行走的步数以及最小步数。文章包含完整的AC(Accepted)代码。
摘要由CSDN通过智能技术生成

题目大意:前提:(迷宫中一直向左或者向右走(可用DFS),一定可以走出迷宫,即从S走到T)
要求输出一直向左走走出迷宫需要的步数,一直向右走走出迷宫需要的步数,和走出迷宫需要的最小步数(两次深搜,一次广搜)
附AC代码

#include<iostream>
#include<queue>
using namespace std;
#define MapMax 40
#define DirMax 4
struct Pos
{
	int x, y;
};


int Dir[DirMax][2] = { { 0,-1 },{ -1,0 },{ 0,1 },{ 1,0 } };

int MapN, MapM;
bool IsEnd;
void DFS_Fun(int Dir[][2],char Map[][MapMax], int Mark[][MapMax], int CurX, int CurY, int EndX, int EndY, int &CurStep,int DirIndex)
{
	if (CurX == EndX && CurY == EndY)
	{
		IsEnd = true;
		return;
	}
	int tempDir = DirIndex;
	int n = DirMax;
	for(int k = 0;k<DirMax;k++)
	{

		DirIndex = tempDir + k;
		DirIndex %= DirMax;
		int NextX = CurX + Dir[DirIndex][0];
		int NextY = CurY + Dir[DirIndex][1];
		if (NextX >= MapN || NextX < 0 || NextY >&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值