ACM 演算法3 3 迷宮 程式

2021-06-29 10:52:58 字數 1093 閱讀 5386

題目描述

有乙個 10 x 10 的迷宮,起點是『s』,終點是『e』,牆是『#』,道路是空格。乙個機械人從起點走到終點。當機械人走到乙個通道塊,前面已經沒有路可走時,它會轉向到當前面向的右手方向繼續走。如果機械人能夠過,則留下足跡『*』,如果走不通,則留下標記『!』。

下面給出書中的演算法,請你模擬機械人的走法輸出最終的狀態。

輸入 乙個 10 x 10 的二維字元陣列。

輸出 機械人走過的路徑狀態。

#include #include #include using namespace std;

#define n 10

struct mazecell;

class maze

if(this->map[i][j].sign == 'e')}}

}void print()

cout << endl;}}

bool ispath(int i,int j)

void findpath()

//cout << count << endl;

m = path.top();

int i = m.i,j = m.j;

m = this->map[i][j]; //第一步:取棧頂

if(m.direction == 0 || m.direction == 1)else

//走不通就換方向

}else if(m.direction == 2)else

//走不通就換方向

}else if(m.direction == 3)else this->map[m.i][m.j].direction = 4; //走不通就換方向

}else if(m.direction == 4)else this->map[m.i][m.j].direction = 5; //走不通就換方向

}else if(m.direction == 5)

else

}if(path.empty()) return;

this->map[this->end.i][this->end.j].sign = '*';

}};int main()

HNCU1742 演算法3 3 迷宮

有乙個 10 x 10 的迷宮,起點是 s 終點是 e 牆是 道路是空格。乙個機械人從起點走到終點。當機械人走到乙個通道塊,前面已經沒有路可走時,它會轉向到當前面向的右手方向繼續走。如果機械人能夠過,則留下足跡 如果走不通,則留下標記 下面給出書中的演算法,請你模擬機械人的走法輸出最終的狀態。圖 迷...

ACM 迷宮問題

使用dfs的方法對所有路徑進行遍歷,當某路徑可以到達終點時,使用乙個向量儲存路徑,並使用乙個陣列儲存他的路徑長度,最後輸出路徑最短的路徑。include include include using namespace std int m,n int vis 5 5 int f 4 2 左,上,右,下...

ACM 迷宮問題

定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。input 乙個5 5的二維陣列,表示乙個迷宮。資料保證有唯一解。output 左上角到右下角的最短路徑,格式如樣例所示。sa...