#include
//萬能標頭檔案,屢試不爽
using
namespace std;
int n, m, c1, c2;
int dis[
510]
, weight[
510]
, e[
510]
[510
], num[
510]
, w[
510]
, pre[
510]
;//dis指的是從起點到這點的距離,不斷更新
//weight用於輸入每個城市的救援部隊數量
//e是個二維陣列,顯然用來存放從某個城市到某個城市的快速道路長度
//num是最短路徑的條數
//w指的是從原點到這點,總共的救援隊伍數量
//pre就是preview指的是上次經過的城市
bool visit[
510]
;//標記陣列
const
int inf =
0x3f3f3f3f
;//0x3f3f3f3f 嗯,你可以理解為乙個安全的,很大的數字,max吧
void
printpath
(int v)
printpath
(pre[v]);
printf
(" %d"
, v);}
intmain()
dis[c1]=0
;//1.
w[c1]
= weight[c1]
;//2.
num[c1]=1
;//3. 三步把初始化了起點的情況
for(
int i =
0; i < n; i++)}
if(u ==-1
)break
; visit[u]
=true
;for
(int v =
0; v < n; v++
)else
if(dis[u]
+ e[u]
[v]== dis[v])}
}}}printf
("%d %d\n"
, num[c2]
, w[c2]);
//由於各個資料都被更新好了,就輸入終點對應的資料就好
printpath
(c2)
;return0;
}
L2 001 緊急救援 (25 分)
作為乙個城市的應急救援隊伍的負責人,你有一張特殊的全國地圖。在地圖上顯示有多個分散的城市和一些連線城市的快速道路。每個城市的救援隊數量和每一條連線兩個城市的快速道路長度都標在地圖上。當其他城市有緊急求助 給你的時候,你的任務是帶領你的救援隊盡快趕往事發地,同時,一路上召集盡可能多的救援隊。輸入第一行...
L2 001 緊急救援 (25 分
l2 001 緊急救援 25 分 作為乙個城市的應急救援隊伍的負責人,你有一張特殊的全國地圖。在地圖上顯示有多個分散的城市和一些連線城市的快速道路。每個城市的救援隊數量和每一條連線兩個城市的快速道路長度都標在地圖上。當其他城市有緊急求助 給你的時候,你的任務是帶領你的救援隊盡快趕往事發地,同時,一路...
L2 001 緊急救援 (25 分
最短路因為還要求最短路徑的個數和最大救援人數 對於每個節點和每個節點的前乙個節點,理想的方法是和藍橋杯第五題一樣,結構體裡增加三個記錄資訊,這道題就是要增加乙個最短路徑的個數和當前最大救援隊數的資訊和每個節點的前乙個節點。但我們存圖的方式不是存點,而是存邊,所以只能額外開乙個陣列tot,記錄起始點到...