迪傑斯特拉演算法

2021-09-23 22:10:51 字數 892 閱讀 3568

problem description

做為乙個資深驢友,小新有一張珍藏的自駕遊線路圖,圖上詳細的標註了全國各個城市之間的高速公路距離和公路收費情況,現在請你編寫乙個程式,找出一條出發地到目的地之間的最短路徑,如果有多條路徑最短,則輸出過路費最少的一條路徑。

input

連續t組資料輸入,每組輸入資料的第一行給出四個正整數n,m,s,d,其中n(2 <= n <= 500)是城市數目,城市編號從0~n-1,m是城市間高速公路的條數,s是出發地的城市編號,d是目的地的城市編號;隨後m行,每行給出一條高速公路的資訊,表示城市1、城市2、高速公路長度、收費額,中間以空格間隔,數字均為整數且不超過500,輸入資料均保證有解。

output

在同一行中輸出路徑長度和收費總額,資料間用空格間隔。

sample input

14 5 0 3

0 1 1 20

1 3 2 30

0 3 4 10

0 2 2 20

2 3 1 20

sample output

3 40

///避免使用max,min,map等作為變數名,提交報錯。

#include #include #include #define max int_max

#include using namespace std;

int n, m ; //頂點數,邊數;

int vis[550] ; //點的訪問情況 ;

int money[550][550] ; //存放點與點之間的過路費 ;

void dijkstra(int n,int v0,int vn)

dijkstra(n,v0,vn);

}return 0;

}

迪傑斯特拉演算法

if object id t test is not null drop table t test gocreate table dbo t test id int identity 1,1 not null primary key,自增字段,無意義 header varchar 500 第一點的名...

迪傑斯特拉演算法

dijkstra 迪傑斯特拉 演算法是典型的最短路徑路由演算法,用於計算乙個節點到其他所有節點的最短路徑。主要特點是以起始點為中心向外層層擴充套件,直到擴充套件到終點為止。dijkstra演算法 能得出最短路徑的最優解,但由於它遍歷計算的節點很多,所以效率低。dijkstra演算法是很有代表性的最短...

迪傑斯特拉演算法

迪傑斯特拉演算法用來計算圖中某一點到其他點的最短距離,這個圖可以是加權,也可以是無權的,距離指的是從一點到其它點所經過的邊的權重和 假設現在有乙個加權無向圖,我們要求節點1到其他點的最短距離 初始化圖arr 用乙個鄰接矩陣來表示一張圖,矩陣元素 初始化一維向量d,這個向量儲存的是其他點的最短距離,初...