#include<bits/stdc++.h>
using namespace std;
/*
二維陣列:地圖、標記陣列
遞迴:搜尋方法dfs(),透過一個座標搜尋四個方向
其他:二維陣列中的上右下左方向陣列
*/
int G[15][15]; //地圖
bool vis[15][15];//標記陣列和地圖一樣大,1代表被走過,0代表沒有
int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1}; //dx是橫座標 dy是縱座標
int n;//n*n大小
int f = 0;//標記是否能走到,1代表能,0代表不能
//dfs()搜尋函式
void dfs(int x,int y){
if(x==n&&y==n){ //判斷該座標是終點
f=1; //修改標記能到達終點
return ;
}
//依次檢查4個方向
for(int i=0;i<4;i++){
//求出下一個目標點的座標
int xx = x+dx[i];
int yy = y+dy[i];
//判斷位置是否合法,全部成立
//地圖內 xx>=1&&xx<=n&&yy>=1&&yy<=n
//可以通行/不為障礙物 G[xx][yy]!=1
//沒有被走過 vis[xx][yy]==0
if(xx>=1&&xx<=n&&yy>=1&&yy<=n&&G[xx][yy]!=1
&&vis[xx][yy]==0){
vis[xx][yy]=1;//走這個點,標記走過
dfs(xx,yy); //繼續搜尋這個點
}
}
}
int main(){
//地圖輸入
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>G[i][j];
}
}
//標記起點,開啟搜尋
vis[1][1]=1;
dfs(1,1);
//非0為真
if(f) cout<<"YES";
else cout<<"NO";
return 0;
}
1744 迷宮
相關文章
- 走迷宮
- 509迷宮
- 簡單介紹Python迷宮生成和迷宮破解演算法Python演算法
- PHP 生成迷宮路線PHP
- 【面試】如何找到迷宮出口面試
- PHP 解迷宮之 H 最小PHP
- Python迷宮生成器Python
- 回溯法求迷宮問題
- 自動走迷宮小遊戲~遊戲
- 藍橋杯-走迷宮(BFS)
- POJ3984-迷宮問題
- 內容是超正統的迷宮RPG?PSP遊戲《迷宮旅人2》深度解析遊戲
- PHP 解迷宮之 G + H 最小PHP
- 用 Canvas + WASM 畫一個迷宮CanvasASM
- 回溯法解決迷宮問題
- 51nod 1459 迷宮遊戲遊戲
- 隨機迷宮生成演算法隨機演算法
- 如何用程式解圖片迷宮?
- C語言動態走迷宮C語言
- 藍橋杯-迷宮(BFS+DFS)
- 解密迷宮問題:三種高效演算法Java實現,讓你輕鬆穿越未知迷宮解密演算法Java
- 華為優招面試題---迷宮問題面試題
- UOJ #810. 【UNR #7】位元迷宮
- 寒假補充專案-回溯法走迷宮
- 用C語言解決迷宮問題C語言
- 7-12 求迷宮最短通道(整合版)
- Python 精靈模組_迷宮房間類遊戲Python遊戲
- 【Javascript + Vue】實現隨機生成迷宮圖片JavaScriptVue隨機
- C++實現迷宮的生成與解決C++
- 【dawn·資料結構】迷宮問題(C++)資料結構C++
- 【ybt高效進階1-5-1】走迷宮
- 迷宮問題——最短程式碼,不到70行
- 用webgl打造自己的3D迷宮遊戲Web3D遊戲
- HDU-1272 小希的迷宮 並查集並查集
- [SDOI2012] 走迷宮 題解
- 洛谷 p1605 迷宮問題 詳解
- 使用A*演算法解迷宮最短路徑問題演算法
- JAVA 實現《複雜迷宮》遊戲|CSDN創作打卡Java遊戲
- POJ 2251-Dungeon Master(BFS-三維迷宮)AST