乘車路線 二維spfa

2022-03-19 19:12:28 字數 1683 閱讀 8737

編號為1nn座城鎮用若干僅供單向行駛的道路相連,每條道路上均有兩個引數:道路長度(length)和在該條道路上行駛的費用(cost)。bob準備從城鎮1出發到達城鎮n,但他目前只有w的錢,為此,你需要幫助他尋找一條從城鎮1到城鎮n在他能支付的前提下的一條最短路線。

wnmn為城鎮數目,2<=n<=100m為道路條數,1<=m<=10000,w為錢的數目,0<=w<=1000)隨後的m行每行為一條道路的資訊,包含4個數值(u,v,w,cost),表示從城鎮uv有一條長度為w的單向道路,經過這條道路需要花費cost。(1<=u,v<=n,1<=w<=100,0<=cost<=100)

輸出最短長度,若無解,則輸出「no」;

5 6 7

1 2 2 3

2 4 3 3

3 4 2 4

1 3 4 1

4 6 2 1

3 5 2 0

5 4 3 2

11

詳見**

#include#include#include#include#includeusing namespace std;

const int maxn = 100+10,maxm = 1e4+10,inf = 0x3f3f3f3f;

int w,n,m;

int dis[maxn][1005],mon[maxn],ans[maxn],head[maxm],vis[maxn][1005];

struct edgee[maxm];

int len;

void addedge(int u,int v,int x,int y)

void spfa(int x)

}} }

}int main()

spfa(1);

int ans = inf;

for(int i = 0;i <= w;i++)ans = min(ans,dis[n][i]);

ans==inf ? printf("no") : printf("%d",ans);

return 0;

}

二維spfa模板

題目描述 bob準備從城鎮1出發到達城鎮n,但他目前只有w的錢,為此,你需要幫助他尋找一條從城鎮1到城鎮n在他能支付的前提下的一條最短路線。輸入格式 輸出格式 輸出最短長度,若無解,則輸出 no 樣例樣例輸入 5 6 7 1 2 2 3 2 4 3 3 3 4 2 4 1 3 4 1 4 6 2 1...

二維陣列與二維指標

1.二維陣列的儲存是線性的,可以通過一維指標的方式訪問。如一下 int map 5 5 int mapd map 0 0 則 map i j mapd i 5 j 而利用二維陣列線性儲存的特性,可以將二維陣列當作一維指標方便的在函式之間傳遞 如 將乙個二維陣列賦值給乙個動態二維陣列,引數設定為一維指...

二維指標和二維陣列

二維指標和二維陣列有三種形式 1,type ptr 2,type ptr或者type prt 3,type prt 三種形式意思相近,也有區別。首先三種形式都能表示二維的資料結構。1,type ptr 表示乙個指向指標的指標 但是在一開始宣告的時候 type ptr ptr到底指向幾個指標是不知道的...