亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

最短路問題

2019-11-06 06:06:00
字體:
來源:轉載
供稿:網友

Dijkstra算法可以解決最短路問題,針對單源有向圖,屬于貪心算法的一種,要求權值非負。

算法實現步驟: 初始化:起點dist[s]=0 其他dist[i]=INF 節點集合V[i]=0 注:C++中初始化最大值,如果設置為FFFFFFFF其實有問題,就像在這個問題中,如果將最大值加一,則出現了負數,所以#define INF 0x3f3f3f3f

初始化:起點dist[s]=0 其他dist[i]=INF 節點集合V[i]=0*注:C++中初始化最大值,如果設置為FFFFFFFF其實有問題,就像在這個問題中,如果將最大值加一,則出現了負數,所以#define INF 0x3f3f3f3f*循環n次,找到不屬于V的k且dist[k]最小的節點,V[k]=1對于不屬于V的i,更新:dist[i] = min(dist[i], dist[k] + weight[k][i]);

那么我們來解決PAT上1003. Emergency (25)這個問題,題目如下:

As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams in each city and the length of each road between any pair of cities are marked on the map. When there is an emergency call to you from some other city, your job is to lead your men to the place as quickly as possible, and at the mean time, call up as many hands on the way as possible.InputEach input file contains one test case. For each test case, the first line contains 4 positive integers: N (<= 500) - the number of cities (and the cities are numbered from 0 to N-1), M - the number of roads, C1 and C2 - the cities that you are currently in and that you must save, respectively. The next line contains N integers, where the i-th integer is the number of rescue teams in the i-th city. Then M lines follow, each describes a road with three integers c1, c2 and L, which are the pair of cities connected by a road and the length of that road, respectively. It is guaranteed that there exists at least one path from C1 to C2.OutputFor each test case, PRint in one line two numbers: the number of different shortest paths between C1 and C2, and the maximum amount of rescue teams you can possibly gather.All the numbers in a line must be separated by exactly one space, and there is no extra space allowed at the end of a line.Sample Input5 6 0 21 2 1 5 30 1 10 2 20 3 11 2 12 4 13 4 1Sample Output2 4

作為最短路的變形題目,我們要注意對于maxTeam和countShst的記錄: 如果s-k-i路線最短,那么i的最短路個數就等于k的最短路個數,且i的maxTeam就等于k的maxTeam帶上自己的人數。 如果說s-k-i長度與s-i相等,那么最短路個數等于k的最短路個數加上i的最短路個數,這個時候需要判斷下走哪條路maxTeam比較大。

代碼實現:

#include <iostream>#include <stdio.h>#include <limits.h>#include <algorithm>using namespace std;#define INF 0x3F3F3F3F;int N, M, S, E, C1, C2;int teams[502] = { 0 };int weight[502][502] = { 0 };int dist[502];bool mark[502] = { false };int countShst[502];int maxTeam[502] = { 0 };void dijkstra();int main(void){ cin >> N; cin >> M >> S >> E; //memset(dist, INF, sizeof(dist)); //memset(mark, 0, sizeof(mark)); //memset(countShst, 1, sizeof(countShst)); for (int i = 0; i < 502; i++){ dist[i] = INF; mark[i] = 0; maxTeam[i] = 0; countShst[i] = 0; for (int j = 0; j < 502; j++) weight[i][j] = weight[j][i] = INF; } for (int i = 0; i < N; i++) { cin >> teams[i]; maxTeam[i] = teams[i]; } for (int i = 0; i < M; i++) { cin >> C1 >> C2; cin >> weight[C1][C2]; weight[C2][C1] = weight[C1][C2]; //cout << "weight" << weight[C2][C1]; } dist[S] = 0; dijkstra(); //cout << "shortest: " << dist[E] << " MaxTeams: " << maxTeam[E]<<" "<<teams[S]; cout << countShst[E] << " " << maxTeam[E] << endl; system("pause"); return 0;}void dijkstra(){ int k = S, dmin; //mark[k] = true; //int flag = 0; countShst[S] = 1; for (int i = 0; i < N; i++) { //int k = -1; //dist[S] = INF; dmin = INF; for (int j = 0; j < N; j++) { if (!mark[j] && dist[j]<dmin) { dmin = dist[j]; k = j; } } //update mark[k] = true; for (int i = 0; i < N; i++) { if (!mark[i]) { if (weight[k][i] != 0 && dist[i] > dist[k] + weight[k][i]) { maxTeam[i] = maxTeam[k] + teams[i]; countShst[i] = countShst[k]; } else if (weight[k][i] != 0 && dist[i] == dist[k] + weight[k][i]) { countShst[i] += countShst[k]; if (maxTeam[i] < maxTeam[k] + teams[i]) maxTeam[i] = maxTeam[k] + teams[i]; } dist[i] = min(dist[i], dist[k] + weight[k][i]); } } }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91嫩草在线视频| 精品亚洲国产成av人片传媒| 欧美人成在线视频| 黄网动漫久久久| 欧美体内谢she精2性欧美| 91精品国产乱码久久久久久久久| 久久久伊人欧美| 日韩成人久久久| 国产精品 欧美在线| 国产一区二区三区在线观看网站| 欧美日韩国产一区在线| 国外成人免费在线播放| 国产精品高潮呻吟久久av野狼| 国产一区深夜福利| 97香蕉超级碰碰久久免费软件| 日本精品一区二区三区在线播放视频| 亚洲国产精品大全| 亚洲最大av网站| 日韩成人黄色av| 欧美成人sm免费视频| 久久天天躁狠狠躁夜夜爽蜜月| 日韩视频中文字幕| 欧美视频中文字幕在线| 亚洲最大成人在线| 日韩小视频在线| 国产精品视频导航| 欧美理论片在线观看| 最近2019年中文视频免费在线观看| 久久影视电视剧凤归四时歌| 中文一区二区视频| 欧美猛少妇色xxxxx| 亚洲性猛交xxxxwww| 欧美一区第一页| 亚洲国产精品久久久| 成人激情视频小说免费下载| 欧美洲成人男女午夜视频| 日韩一区二区av| 欧美高清第一页| 中文字幕亚洲字幕| 亚洲美女精品久久| 亚洲一区二区三区777| 亚洲色图日韩av| 亚洲va欧美va在线观看| 日本不卡视频在线播放| 日韩精品极品在线观看播放免费视频| 国产精品自拍视频| 亚洲天堂男人的天堂| 亚洲国产福利在线| 欧美激情精品久久久| 国产一区二区三区四区福利| 91精品国产九九九久久久亚洲| 91国在线精品国内播放| 亚洲a级在线播放观看| 一区二区亚洲欧洲国产日韩| 亚洲精品第一页| 亚洲奶大毛多的老太婆| 亚洲视频在线观看| 亚洲第一av网| 激情成人在线视频| 国产成人aa精品一区在线播放| 中文字幕九色91在线| 日韩在线观看精品| 日本在线观看天堂男亚洲| 欧美大片免费观看在线观看网站推荐| 亚洲天堂av在线播放| 欧美一级电影久久| 日韩成人在线电影网| 欧美日韩国产丝袜另类| 国产精品久久久999| 亚洲第一福利在线观看| 亚洲第一区第二区| 全球成人中文在线| 国产精品久久久久999| 国产精品第100页| 亚洲字幕一区二区| 国产日韩欧美夫妻视频在线观看| 国产噜噜噜噜久久久久久久久| 国产精品永久在线| 欧美日韩国产限制| 国产亚洲人成a一在线v站| 亚洲免费一在线| 福利一区福利二区微拍刺激| 黑人巨大精品欧美一区二区一视频| 亚洲综合中文字幕在线观看| 国产精品专区一| 69av视频在线播放| 亚洲在线视频观看| 最近2019免费中文字幕视频三| 大伊人狠狠躁夜夜躁av一区| 欧美大奶子在线| 国产亚洲精品成人av久久ww| 国产精品∨欧美精品v日韩精品| 国产成人亚洲综合91精品| 亚洲sss综合天堂久久| 日韩电影中文字幕在线观看| 久久精品美女视频网站| 在线电影中文日韩| 欧美成人亚洲成人日韩成人| 日韩av在线播放资源| 日韩美女视频在线观看| 久久成人亚洲精品| 欧洲美女7788成人免费视频| 亚洲精品电影在线| 亚洲最大的免费| 久久成人在线视频| 国产精品一区二区三区久久| 中文字幕欧美精品在线| 欧美日韩综合视频| 亚洲成人黄色网| 97**国产露脸精品国产| 在线不卡国产精品| 亚洲人成77777在线观看网| 中文字幕日韩免费视频| 啪一啪鲁一鲁2019在线视频| 亲爱的老师9免费观看全集电视剧| 日韩欧美高清在线视频| 91国内在线视频| xxx欧美精品| 国产ts一区二区| 黄色一区二区在线观看| 久久电影一区二区| 欧美激情一级精品国产| 国产精品一区二区久久久| 欧美激情亚洲综合一区| 欧美日韩亚洲一区二| 亚洲性av在线| 日韩资源在线观看| 国外成人免费在线播放| 亚洲肉体裸体xxxx137| 欧美在线免费看| 欧美性猛交xxxxx免费看| 清纯唯美亚洲激情| 在线日韩精品视频| 成人精品一区二区三区电影黑人| 亚洲性生活视频| 色综合男人天堂| 最近中文字幕mv在线一区二区三区四区| 欧美人交a欧美精品| 精品一区二区三区四区| 久久久天堂国产精品女人| 九九热精品视频在线播放| 97视频人免费观看| 日韩欧美极品在线观看| 91青草视频久久| 91免费在线视频| 视频在线一区二区| 日本精品久久电影| 精品国产91久久久久久老师| 欧美激情精品久久久久久久变态| 国产精品激情av电影在线观看| 日本精品久久久久影院| 久久露脸国产精品| 亚洲a∨日韩av高清在线观看| 欧美在线观看视频| 日韩激情在线视频| 日韩精品免费视频| 国产成人免费91av在线| 久久精品国产亚洲7777| 91高清视频在线免费观看| 欧美激情综合色综合啪啪五月| 美女少妇精品视频| 欧美日韩国产一区二区三区| 日韩精品免费综合视频在线播放| 午夜剧场成人观在线视频免费观看|