洛谷P1301 魔鬼之城

2022-04-05 22:09:17 字數 803 閱讀 3117

一道廣度優先搜尋的題目。

結構體含義:

struct node;
方向的標號受上面定義的 $ dx[ ] , dy [ ] $ 陣列 的影響

這個題要注意的就是初始化起點的問題。

起點可以向右、右下、下三個方向,所以三個方向我們都需要處理併入隊。

#include #include #include #include #include using namespace std;

int n,m,map[105][105];

int dx[8] = ;

int dy[8] = ;

bool vis[105][105][8];

struct node;

queueq;

int main()

if(map[1][1] + 1 <= m)

if(map[1][1] + 1 <= n && map[1][1] + 1 <= m)

for(int i=0;i<8;i++)

vis[1][1][i] = 1;

while(!q.empty())

node tmp;

tmp.x = tx; tmp.y = ty;

tmp.step = now.step + 1;

tmp.dir = i;

vis[tx][ty][i] = 1;

q.push(tmp);

}} }

printf("never");

return 0;

}

洛谷P1301 魔鬼之城 題解

想找原題這裡 傳送門 題目描述 在乙個被分割為n m個正方形房間的矩形魔鬼之城中,乙個探險者必須遵循下列規則才能跳躍行動。他必須從 1,1 進入,從 n,m 走出 在每一房間的牆壁上都寫了乙個魔法數字,是1 13之內的自然數 探險者可以想像出8個方向中的任何乙個 水平或垂直或對角線方向 隨後他就可以...

P1301 魔鬼之城

在乙個被分割為n m個正方形房間的矩形魔鬼之城中,乙個探險者必須遵循下列規則才能跳躍行動。他必須從 1,1 進入,從 n,m 走出 在每一房間的牆壁上都寫了乙個魔法數字,是1 13之內的自然數 探險者可以想像出8個方向中的任何乙個 水平或垂直或對角線方向 隨後他就可以作一次空間跳躍穿過這一方向上的連...

洛谷P5049 洛谷P5022 題解 旅行

原題 資料加強版 加強版 參考你谷題解 終於調過了 又是一如既往的申必錯誤 noi plus石錘了 原題的資料允許我們 o n 2 暴力斷邊,但是加強版的資料達到了 n log n 級別,我們必須在斷邊這一環節尋求更好的解法。考慮我們進入環後在何處回溯 根據繼續走環走到的點分類 設當前已經從 b 走...