FZU 1892(bfs)接水管遊戲

2021-07-11 08:20:49 字數 665 閱讀 4980

第一次寫題解,本人菜鳥中的菜菜鳥,因為沒找到題解,想寫乙個給大家參考參考。

題意:接水管,每流過乙個節點分數加1,到達終點或者水流出就終止,輸出分數。一看就是bfs,但是要注意流出邊界的情況

ac**:

#include#include#includeusing namespace std;

const int maxn = 50+5;

struct node

;int n,ei,ej,si,sj;

int vis[maxn][maxn];

int dir[4][2] = ,,,}; //記錄對應編號的方向

int mp[maxn][maxn];

void init()

bool ok(int x,int y,int k)

if(!vis[next.x][next.y]) //這些節點都是成立的}}

}return ans;

}int main()

else if(mp[i][j]&16)

//printf("%d ",mp[i][j]);

}//printf("\n");

}printf("%d\n",bfs(si,sj));

}return 0;

}

FZU 2180 騎士 (雙向BFS)

description 在乙個5 5的棋盤上有12個白色的騎士和12個黑色的騎士,且有乙個空位。在任何時候乙個騎士都能按照騎士的走法 它可以走到和它橫座標相差為1,縱座標相差為2或者橫座標相差為2,縱座標相差為1的格仔 移動到空位上。給定乙個初始的棋盤,怎樣才能經過移動變成如下目標棋盤 為了體現出騎...

FZU 2150 多起點bfs 結構

題目 兩個熊孩子在n m的平地上放火玩,表示草,兩個熊孩子分別選乙個 格仔點火,火可以向上向下向左向右在有草的格仔蔓延,點火的地方時間為0,蔓延至下一格的時間依次加一。求燒完所有的草需要的最少時間。如不能燒完輸出 1。input第一行,輸入乙個t,表示有t組測試資料。每組資料由乙個n,m分別表示行列...

FZU 2028 時空門問題 (BFS)

problem 2028 時空門問題 在乙個n m的地圖上旅行。地圖上有些地方可以走用.表示,不能走用 表示。在可以走的地方上下左右移動一格需要乙個單位時間。可以走的地方還有一些時空之門。時空之門可以減少旅行的時間。如果 a 到 b 有一道時空之門,那麼從 a 到 b 經過時空之門只要 1 個單位時...