【ybt高效進階1-5-1】走迷宮
走迷宮
題目連結:ybt高效進階1-5-1
題目大意
在一個 N×N 的地圖中,一些地方可以走一些不可以走。
問你從一個地方走到另一個地方的最小步數。
思路
就是直接 bfs 搞過去。
跑圖,跑到要的點就輸出退出。
程式碼
#include<queue>
#include<cstdio>
using namespace std;
int n, a[1001][1001], sx, sy, tx, ty, ans, now, nowdis, nowx, nowy;
int dx[4] = {0, 1, 0, -1}, dy[4] = {1, 0, -1, 0};
queue <pair<int, int> > q;
bool in[1001][1001];
char c;
int get_num(int x, int y) {
return (x - 1) * n + y - 1;
}
bool ch(int x, int y) {
if (x < 1 || x > n) return 0;
if (y < 1 || y > n) return 0;
return 1;
}
void bfs() {
q.push(make_pair(get_num(sx, sy), 0));
in[sx][sy] = 1;
while (!q.empty()) {
nowx = q.front().first / n + 1;
nowy = q.front().first % n + 1;
nowdis = q.front().second;
q.pop();
for (int i = 0; i < 4; i++)
if (ch(nowx + dx[i], nowy + dy[i]) && !a[nowx + dx[i]][nowy + dy[i]] && !in[nowx + dx[i]][nowy + dy[i]]) {
in[nowx + dx[i]][nowy + dy[i]] = 1;
if (tx == nowx + dx[i] && ty == nowy + dy[i]) {
ans = nowdis + 1;
return ;
}
q.push(make_pair(get_num(nowx + dx[i], nowy + dy[i]), nowdis + 1));
}
}
}
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
c = getchar();
while (c != '0' && c != '1') c = getchar();
a[i][j] = c - '0';
}
}
scanf("%d %d %d %d", &sx, &sy, &tx, &ty);
bfs();
printf("%d", ans);
return 0;
}
相關文章
- 走迷宮
- 3090 走迷宮
- 藍橋杯-走迷宮(BFS)
- 自動走迷宮小遊戲~遊戲
- [SDOI2012] 走迷宮 題解
- 【ybtoj】【BFS】【例題1】走迷宮
- 【ybt高效進階1-4-3】【luogu P1092】蟲食算
- 1744 迷宮
- 509迷宮
- 解密迷宮問題:三種高效演算法Java實現,讓你輕鬆穿越未知迷宮解密演算法Java
- 迷宮問題
- 3089 探索迷宮
- 尋路者華為雲:在產業AI迷宮裡走直線產業AI
- 簡單介紹Python迷宮生成和迷宮破解演算法Python演算法
- 用Q-learning演算法實現自動走迷宮機器人演算法機器人
- 強化學習入門之智慧走迷宮-策略迭代演算法強化學習演算法
- 迷宮城堡(HDU-1269)
- PHP 生成迷宮路線PHP
- 迷宮可行路徑數
- Python迷宮生成器Python
- 迷宮的最短路徑
- 創造你的專屬迷宮 《磚塊迷宮建造者》上架WeGameGAM
- PARL原始碼走讀——使用策略梯度演算法求解迷宮尋寶問題原始碼梯度演算法
- 強化學習入門之智慧走迷宮-價值迭代演算法強化學習演算法
- PHP 解迷宮之 H 最小PHP
- 回溯法求迷宮問題
- POJ3984-迷宮問題
- 內容是超正統的迷宮RPG?PSP遊戲《迷宮旅人2》深度解析遊戲
- POJ3984 迷宮問題【BFS】
- 藍橋杯-迷宮(BFS+DFS)
- PHP 解迷宮之 G + H 最小PHP
- hdu 1728 逃離迷宮 搜尋
- 用 Canvas + WASM 畫一個迷宮CanvasASM
- UOJ #810. 【UNR #7】位元迷宮
- ybtoj 高效進階題解索引索引
- ybtoj高效進階題解索引索引
- 7-12 求迷宮最短通道(整合版)
- 10.16 CW 模擬賽 D. 迷宮(maze)