題意:n個城市,每個城市有人數,給你起點和終點,求最短路,如果有多條,輸出最短路徑條數和經過的城市人數之和最大的一條。
#include
#define inf 0x3f3f3f3f
using
namespace std;
const
int n =
510;
int vis[n]
;//是否用這個點更新過
int ma[n]
[n];
//存圖
int dis[n]
;//兩點間最短距離
int num[n]
;//每個點的救援隊人數
int numdis[n]
;//到每個點最多能夠集結到的人數
int path[n]
;//存路徑
int pathnum[n]
;//到達每個點的路徑數量
int n,m,s,d;
int ans[n]
,top =0;
//用於輸出路徑
voiddj(
)}vis[u]=1
;for
(int j =
0; j < n; j++
)else
if(dis[j]
== dis[u]
+ma[u]
[j])
//如果距離相等}}
}}}void
getpath
(int x)
else
}int
main()
ma[i]
[i]=0;
}for
(int i =
0; i < n; i++
)for
(int i =
1; i <= m; i++)dj
();getpath
(d);
cout << pathnum[d]
<<
' '<< numdis[d]
<< endl;
for(
int i = top-
1; i >
0; i--
) cout << ans[0]
<< endl;
return0;
}
PAT 城市間緊急救援(dijkstra)
7 25 城市間緊急救援 300分 作為乙個城市的應急救援隊伍的負責人,你有一張特殊的全國地圖。在地圖上顯示有多個分散的城市和一些連線城市的快速道路。每個城市的救援隊數量和每一條連線兩個城市的快速道路長度都標在地圖上。當其他城市有緊急求助 給你的時候,你的任務是帶領你的救援隊盡快趕往事發地,同時,一...
7 4 城市間緊急救援
7 4 城市間緊急救援 25 分 作為乙個城市的應急救援隊伍的負責人,你有一張特殊的全國地圖。在地圖上顯示有多個分散的城市和一些連線城市的快速道路。每個城市的救援隊數量和每一條連線兩個城市的快速道路長度都標在地圖上。當其他城市有緊急求助 給你的時候,你的任務是帶領你的救援隊盡快趕往事發地,同時,一路...
PTA 城市間緊急救援
作為乙個城市的應急救援隊伍的負責人,你有一張特殊的全國地圖。在地圖上顯示有多個分散的城市和一些連線城市的快速道路。每個城市的救援隊數量和每一條連線兩個城市的快速道路長度都標在地圖上。當其他城市有緊急求助 給你的時候,你的任務是帶領你的救援隊盡快趕往事發地,同時,一路上召集盡可能多的救援隊。輸入第一行...