雙重權值(SPFA演算法)

2021-07-31 11:42:56 字數 780 閱讀 5118

試題描述:

給你n個點,m條無向邊,每條邊都有長度d和花費p,給你起點s終點t,要求輸出起點到終點的最短距離及其花費,如果最短距離

有多條路線,則輸出花費最少的。

輸入要求:

輸入n,m,點的編號是1~n,然後是m行,每行4個數 a,b,d,p,表示a和b之間有一條邊,且其長度為d,花費為p。最後一行是兩個數

s,t;起點s,終點t。(1

#include 

#include

#include

#include

#include

using

namespace

std;

#define max 1002

#define int 1000000

int w[max];

int cost[max];

bool vis[max];

struct nodemap1[max][max];

int n,m,a,b,d,p,s,t;

void spfa()}}

}}int main()

w[i]=int;

cost[i]=int;

vis[i]=false;

}for(int i=1;i<=m;i++)

scanf("%d %d",&s,&t);

spfa();

printf("%d %d\n",w[t],cost[t]);

return

0;}

最短路SPFA演算法(解決負權邊)

演算法思想 實現方法 建立乙個佇列,初始時佇列裡只有起始點,再建立乙個 記錄起始點到所有點的最短路徑 該 的初始值要賦為極大值,該點到他本身的路徑賦為0 然後執行鬆弛操作,用佇列裡有的點作為起始點去重新整理到所有點的最短路,如果重新整理成功且被重新整理點不在佇列中則把該點加入到佇列最後。重複執行直到...

HDU 3790 最短路徑問題(雙重權值)

problem description 給你n個點,m條無向邊,每條邊都有長度d和花費p,給你起點s終點t,要求輸出起點到終點的最短距離及其花費,如果最短距離有多條路線,則輸出花費最少的。input 輸入n,m,點的編號是1 n,然後是m行,每行4個數 a,b,d,p,表示a和b之間有一條邊,且其長...

數模演算法 熵權法(用於客觀確定權值)

根據資訊熵的定義,對於某項指標,可以用熵值來判斷某個指標的離散程度,其熵值越小,指標的離散程度越大,該指針對綜合評價的影響 即權重 就越大,如果某項指標的值全部相等,則該指標在綜合評價中不起作用。按照資訊理論基本原理的解釋,資訊是系統有序程度的乙個度量,熵是系統無序程度的乙個度量 如果指標的資訊熵越...