01迷宮(洛谷P1141)

2021-08-31 03:51:32 字數 734 閱讀 9583

【題目描述】

有乙個僅由數字0與1組成的n*n格迷宮。若你位於一格0上,那麼你可以移動到相鄰4格中的某一格1上,同樣若你位於一格1上,那麼你可以移動到相鄰4格中的某一格0上。

你的任務是:對於給定的迷宮,詢問從某一格開始能移動到多少個格仔(包含自身)。

【資料範圍】

n<=1000

m<=100000

【分析】

顯然互相可以到達的格仔的答案是一樣的。這樣的一條路徑上所有點的答案都是路徑的長度。所以求聯通塊即可。具體的實現用dfs和bfs都可以。

#include#include#include#include#include#include#includeusing namespace std;

#define ll long long

int dx=;

int dy=;

const int n=1000+5;

const int m=100000+5;

char ch[n][n];

int n,m;

int a[n][n],vis[n][n]=,sum[n][n]=;

struct hahanode[m];

queueq;

vectorans;

void bfs(int x,int y)

} }}int main()

for (int i=1;i<=m;i++)

}

洛谷 P1141 記憶化搜尋

有乙個僅由數字000與111組成的n nn times nn n格迷宮。若你位於一格0上,那麼你可以移動到相鄰444格中的某一格111上,同樣若你位於一格1上,那麼你可以移動到相鄰444格中的某一格000上。你的任務是 對於給定的迷宮,詢問從某一格開始能移動到多少個格仔 包含自身 輸入格式 第111...

BFS 聯通塊 記憶化搜素 洛谷P1141

題目鏈結在此!首先提一下,這個題目就是很簡單的bfs,dalao們的並查集我也沒看懂 我蒻 直接寫bfs肯定是會t的,因為每乙個搜圖都會有很多重複的地方被搜到了。下面說思路 在這個圖中,很明顯就是一些聯通塊,每乙個塊裡面的每乙個座標的答案都是一樣的。那麼我們就直接把搜過的地方的每乙個座標都記錄下來,...

01迷宮 洛谷

有乙個僅由數字 000 與 111 組成的 n nn times nn n 格迷宮。若你位於一格0上,那麼你可以移動到相鄰 444 格中的某一格 111 上,同樣若你位於一格1上,那麼你可以移動到相鄰 444 格中的某一格 000 上。你的任務是 對於給定的迷宮,詢問從某一格開始能移動到多少個格仔 ...