編號為1
∼n
的n
座城鎮用若干僅供單向行駛的道路相連,每條道路上均有兩個引數:道路長度(length
)和在該條道路上行駛的費用(cost
)。bob準備從城鎮1
出發到達城鎮n
,但他目前只有w
的錢,為此,你需要幫助他尋找一條從城鎮1
到城鎮n
在他能支付的前提下的一條最短路線。
w
n
m
(n
為城鎮數目,2
<=n
<=100
,m
為道路條數,1
<=m
<=10000
,w
為錢的數目,0
<=w
<=1000
)隨後的m
行每行為一條道路的資訊,包含4
個數值(u
,v
,w
,cost
),表示從城鎮u
到v
有一條長度為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到底指向幾個指標是不知道的...