POJ3984 迷宮問題【BFS】
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<stack>
#include<vector>
using namespace std;
#define maxn 50
int a[5][5];
int dis[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
int front=0;
int rear=0;
int visit[5][5];
struct node{
int x,y;
int pre;
}Node[maxn];
void dfs(int beginX,int beginY,int endX,int endY)
{
Node[0].x=beginX;
Node[0].y=beginY;
Node[0].pre=-1;
visit[beginX][beginY]=1;
rear++;
while (front<rear)
{
for(int i=0;i<4;i++)
{
int newX=Node[front].x+dis[i][0];
int newY=Node[front].y+dis[i][1];
if(newX<0||newX>4||newY<0||newY>4||visit[newX][newY]==1||a[newX][newY]==1)
continue;
Node[rear].x=newX;
Node[rear].y=newY;
Node[rear].pre=front;
visit[newX][newY]=1;
rear++;
if(newX==endX&&newY==endY)
return;
}
front++;
}
}
void print(node now)
{
if(now.pre==-1)
cout<<"("<<now.x<<", "<<now.y<<")"<<endl;
else
{
print(Node[now.pre]);
cout<<"("<<now.x<<", "<<now.y<<")"<<endl;
}
}
int main()
{
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
cin>>a[i][j];
}
}
dfs(0, 0, 4, 4);
print(Node[rear-1]);
return 0;
}
相關文章
- 【ybtoj】【BFS】【例題1】走迷宮
- 迷宮問題
- 藍橋杯-走迷宮(BFS)
- 藍橋杯-迷宮(BFS+DFS)
- 回溯法求迷宮問題
- POJ3984-迷宮問題
- 洛谷 p1605 迷宮問題 詳解
- 迷宮問題——最短程式碼,不到70行
- 【dawn·資料結構】迷宮問題(C++)資料結構C++
- 解密迷宮問題:三種高效演算法Java實現,讓你輕鬆穿越未知迷宮解密演算法Java
- 用python深度優先遍歷解迷宮問題Python
- 使用A*演算法解迷宮最短路徑問題演算法
- (C++)資料結構實驗二——迷宮問題C++資料結構
- 回溯和遞迴實現迷宮問題(C語言)遞迴C語言
- c++迷宮問題回溯法遞迴演算法C++遞迴演算法
- 1744 迷宮
- 509迷宮
- 走迷宮
- [SDOI2012] 走迷宮 題解
- 3090 走迷宮
- 3089 探索迷宮
- dfs深度優先搜尋解決迷宮類問題(遍歷)
- 簡單介紹Python迷宮生成和迷宮破解演算法Python演算法
- [省選聯考 2024] 迷宮守衛 題解
- 迷宮可行路徑數
- Python迷宮生成器Python
- PHP 生成迷宮路線PHP
- 迷宮的最短路徑
- 迷宮城堡(HDU-1269)
- 「IT運維迷宮」那些讓人頭疼的常見問題與破局之道運維
- PARL原始碼走讀——使用策略梯度演算法求解迷宮尋寶問題原始碼梯度演算法
- 創造你的專屬迷宮 《磚塊迷宮建造者》上架WeGameGAM
- PHP 解迷宮之 H 最小PHP
- 內容是超正統的迷宮RPG?PSP遊戲《迷宮旅人2》深度解析遊戲
- 自動走迷宮小遊戲~遊戲
- UOJ #810. 【UNR #7】位元迷宮
- PHP 解迷宮之 G + H 最小PHP
- hdu 1728 逃離迷宮 搜尋