Uva1600題目解答

2022-09-22 23:03:25 字數 699 閱讀 1597

uva1600題目解答:題意:給乙個迷宮,求 從(1,1)到(m,n)最少需要幾步。但是有個限制條件,迷宮中有很多障礙,給出k,表示可以在迷宮中連續穿過障礙不超過k個。

思路:還是bfs,只不過再結構體中多了乙個屬性:連續穿障礙個數:

(1)當走到路時正常入隊即可

(2)當遇到障礙時需要判斷當前是連續的幾次障礙,符合可以走,否則不能

注意:標記已走過的路徑應標記出隊的值,不應該入隊時就標記,因為可能會造成把可以穿出障礙的路給標記了!

**:#include

#include

#include

#include

using namespace std;

const int maxn = 25;

int n,m,k,maze[maxn][maxn];

struct node;

queueq;

int bfs()

if(maze[tx][ty] == 1 && pre.cot + 1 <= k)}}

q.pop();

}return -1;}

int main()

{ int t;

while(scanf("%d",&t)!=eof){

while(t--){

scanf("%d%d%d",&n,&m,&k);

for(int i=0;i

巡邏機械人 UVa 1600

機械人要從乙個m n 1 m,n 20 網格的左上角 1,1 走到右下角 m,n 網格中的一些格仔是空地 用0表示 其他格仔是障礙 用1表示 機械人每次可以往4個方向走一格,但不能連續地穿越k 0 k 20 個障礙,求最短路長度。起點和終點保證是空地。例如,對於圖6 22 a 中的資料,圖6 22 ...

uva 1600 可越過障礙物的bfs

include include include include using namespace std const int maxn 30 int t,n,m,k int mao maxn maxn vis maxn maxn maxn 三維陣列第三維表示已經走過的障礙物的個數,值仍舊表示是否訪問過...

UVA122 題目解答

uva122 題目解答 以任意順序給出一棵二叉樹的節點,格式如 5,llrl 數字表示該節點的值。要求輸出一棵樹中從乙個葉子走到根節點的取到最小權值和的那個葉子節點,假如有多個葉子節點能取到最小的權值,則輸出葉子權值本身最小的那個葉子.題目保證了每個節點的權值都是不同的.假如一組輸入,存在乙個節點被...