4 6水管工遊戲

2021-07-28 12:23:20 字數 846 閱讀 1264

#include#includeusing namespace std;

int a[51][51];//假設徒弟的大小不超過50*50

int book[51][51],n,m,flag=0;

struct notes[100];

int top=0;

void dfs(int x,int y,int front)

//判斷這個管道是否在路徑中已經使用過

if(book[x][y]==1)

book[x][y]=1;//標記使用當前這個管道

//將當前嘗試的座標入棧

top++;

s[top].x=x;

s[top].y=y;

//當前水管是直管的情況

if(a[x][y]>=5&&a[x][y]<=6)

if(front==2)

if(front==3)

if(front==4)

} //當前水管是彎管的情況

if(a[x][y]>=1&&a[x][y]<=4)

if(front==2)

if(front==3)

if(front==4) }

book[x][y]=0;//取消標記

top--;//將當前嘗試的座標出棧

return;

}int main()

} //開始搜尋,從(1,1)點開始,進水方向也是1

dfs(1,1,1);

//判斷是否找到鋪設方案

if(flag==0)

getchar();

return 0;

}

水管工遊戲

1 題目 水管工遊戲是指如下圖中的矩陣中,一共有兩種管道,乙個是直的,乙個是彎的,所有管道都可以自由旋轉,最終就是要連通入水口可出水口。其中的樹為障礙物。2 演算法思路 本題使用的是深度優先搜尋演算法,先標識入水口方向,在每次探索新管道的時候上根據入水口方向進行擴充套件,然後根據管道的型別來判斷下乙...

DFS 水管工遊戲

ac 今天來複習一下如何用dfs找到能使首尾連線的通道,並顯示出來。一塊矩形土地被分為n m的單位正方形,現在這塊土地上已經埋設有一些水管,水管將從座標為 1,1 的矩形土地的左上角座標邊緣,延伸到座標為 n,m 的矩形土地的右下角右部邊緣。水管有兩種,彎的和直的。每種管道將佔據乙個單位正方形土地。...

水管工遊戲 dfs

水管工遊戲是指如下圖中的矩陣中,一共有兩種管道,乙個是直的,乙個是彎的,所有管道都可以自由旋轉,最終就是要連通入水口可出水口。其中的樹為障礙物。方案 輸入格式 輸入的第一行為兩個整數n和 m 都不超過10 接下來的n行,每行有m個整數,表示地圖中的每一小格。其中0表示樹木,1 6分別表示管道的六種不...