攻城掠地 bfs,優先佇列)

2021-10-04 08:23:45 字數 925 閱讀 8487

題目描述

今天lzy攻城小分隊出動了,他們需要在盡可能短的時間內攻占敵人的大本營。戰場是乙個n * m的二維網格,lzy小分隊初始在(0,0)點,敵軍大本營在( n -1 ,m - 1)點

每個點上有乙個對應的數字代表lzy小分隊攻占這個據點需要耗費的時間,現在作為lzy小分隊的指揮官,你需要指定一條合適的路線,使lzy小分隊能用最短的時間攻占敵人大本營。

輸入測試樣例由多組測試資料組成。每組測試資料第一行輸入兩個正整數n , m ( 1 <= n,m <= 100)

接下來輸入n * m 個數字 ,每個數字不超過 500

輸出輸出lzy小分隊攻占敵人大本營所需要的最短時間

樣例輸入 copy

3 31 2 3

1 2 3

1 2 3

樣例輸出 copy

8思路:用bfs找路存在優先佇列裡,每次第一次計算 都是算 最小的值,之後只要找到因為無論如何,都是可以到n,m的 所以只要到n,m直接輸出 那就是最少的時間了;```

#includeusing namespace std;

struct s;

struct q1

};priority_queue,q1>q;

int a[105][105],b[105][105],n,m;

int fx[5][2]=,,,};

int bfs());}}

}return -1;

}int main()

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

for(int j=1;j<=m;j++) scanf("%d",&a[i][j]);

q.push();

int ans=0;

ans=bfs();

cout<}

return 0;

}

YYOJ 攻城掠地

題目描述 今天lzy攻城小分隊出動了,他們需要在盡可能短的時間內攻占敵人的大本營。戰場是乙個n m的二維網格,lzy小分隊初始在 0,0 點,敵軍大本營在 n 1 m 1 點 每個點上有乙個對應的數字代表lzy小分隊攻占這個據點需要耗費的時間,現在作為lzy小分隊的指揮官,你需要指定一條合適的路線,...

優先佇列 BFS

hdu 5433 xiao ming climbing 這題就是優先佇列 bfs 但是一直wa 原因是在搜尋時標記的位置有問題。以前都沒有出現過這種情況 另外就是雖然找過這點的座標 先前到過這個點 但是鬥志值可能不一樣 題目中要求只要不為0就可以,也就是說到這個點的體力消耗可能會不一樣,要取最小的那...

BFS 優先佇列

湘潭大學2018 小明來到乙個由n x m個格仔組成的迷宮,有些格仔是陷阱,用 表示,小明進入陷阱就會死亡,表示沒有陷阱。小明所在的位置用 s 表示,目的地用 t 表示。小明只能向上下左右相鄰的格仔移動,每移動一次花費1秒。有q個單向傳送陣,每個傳送陣各有乙個入口和乙個出口,入口和出口都在迷宮的格仔...