5 9 旅遊規劃 25分

2021-07-22 02:38:20 字數 2604 閱讀 4944

有了一張自駕旅遊路線圖,你會知道城市間的高速公路長度、以及該公路要收取的過路費。現在需要你寫乙個程式,幫助前來諮詢的遊客找一條出發地和目的地之間的最短路徑。如果有若干條路徑都是最短的,那麼需要輸出最便宜的一條路徑。

輸入格式:

輸入說明:輸入資料的第1行給出4個正整數nmsd,其中nnn(2≤

n≤500 )是城市的個數,順便假設城市的編號為0~(n−

1);m是高速公路的條數;s是出發地的城市編號;d是目的地的城市編號。隨後的m行中,每行給出一條高速公路的資訊,分別是:城市1、城市2、高速公路長度、收費額,中間用空格分開,數字均為整數且不超過500。輸入保證解的存在。

輸出格式:

在一行裡輸出路徑的長度和收費總額,數字間以空格分隔,輸出結尾不能有多餘空格。

輸入樣例:

4 5 0 3

0 1 1 20

1 3 2 30

0 3 4 10

0 2 2 20

2 3 1 20

輸出樣例:

3 40
思路

#include 

#include

#define full 250001

/* 評測結果

時間 結果 得分 題目 編譯器 用時(ms) 記憶體(mb) 使用者

2016-04-15 16:15 答案正確 25 07-圖6 gcc 77 3 569985011

測試點結果

測試點 結果 得分/滿分 用時(ms)記憶體(mb) 要點提示

測試點1 答案正確 12/12 2 1 sample 最便宜的路不是最短路;輸出2條最短路中最便宜的

測試點2 答案正確 5/5 1 1 最小n和m

測試點3 答案正確 4/4 4 3 最大n,有多條等長等價的道路

測試點4 答案正確 4/4 77 3 最大n和m, 隨機完全圖

*/typedef struct lnode *vertex;

typedef struct data datatype;

void floyd_warshall(datatype v[500],int n);

void dijkstra(datatype v[500],int

from,int to ,int n);

int main()

}int disk1,disk2;

for(int i=0; i"%d%d",&disk1,&disk2);

scanf("%d%d",&v[disk1][disk2].lenth_data ,&v[disk1][disk2].coast_data );

v[disk2][disk1].lenth_data =v[disk1][disk2].lenth_data;

v[disk2][disk1].coast_data =v[disk1][disk2].coast_data;

// if(disk1==from||disk2==from)

}// floyd_warshall(v,n);

dijkstra( v,from, to ,n);

if(v[from][to].lenth_data "%d %d",v[from][to].lenth_data ,v[from][to].coast_data );

else printf("0 0");

return0;}

void dijkstra(datatype v[500],int

from,int to ,int n) ;

book[from]=1;

while(1) else }}

if(!flag||find==to)break;

for(int i=0; iif(v [find][i].lenth_dataint lenth=v[from][find].lenth_data+v[find][i].lenth_data;

if(v[from][i].lenth_data>lenth||v[from][i].lenth_data==lenth

&&v[from][i].coast_data>v[find][i].coast_data+v[from][find].coast_data) }

}book[find]=1;

}}void floyd_warshall(datatype v[500],int n) }}

}}

旅遊規劃(25 分)

最短路的乙個題目,不知道自己為什麼用spfa過不去,所以用了dij 自己做了一下優化,這個就是更新結點的時候需要注意一下,更新結點先判斷距離,然後判斷花費,有了一張自駕旅遊路線圖,你會知道城市間的高速公路長度 以及該公路要收取的過路費。現在需要你寫乙個程式,幫助前來諮詢的遊客找一條出發地和目的地之間...

旅遊規劃 (25 分)

有了一張自駕旅遊路線圖,你會知道城市間的高速公路長度 以及該公路要收取的過路費。現在需要你寫乙個程式,幫助前來諮詢的遊客找一條出發地和目的地之間的最短路徑。如果有若干條路徑都是最短的,那麼需要輸出最便宜的一條路徑。輸入說明 輸入資料的第1行給出4個正整數n m s d,其中n 2 n 500 是城市...

7 2 旅遊規劃(25 分)

7 2 旅遊規劃 25 分 有了一張自駕旅遊路線圖,你會知道城市間的高速公路長度 以及該公路要收取的過路費。現在需要你寫乙個程式,幫助前來諮詢的遊客找一條出發地和目的地之間的最短路徑。如果有若干條路徑都是最短的,那麼需要輸出最便宜的一條路徑。輸入說明 輸入資料的第1行給出4個正整數n m s d,其...