藍橋杯 ALGO 5 最短路

2021-09-10 12:56:33 字數 1013 閱讀 6587

演算法訓練 最短路  

時間限制:1.0s   記憶體限制:256.0mb

問題描述

給定乙個n個頂點,m條邊的有向圖(其中某些邊權可能為負,但保證沒有負環)。請你計算從1號點到其他點的最短路(頂點從1到n編號)。

輸入格式

第一行兩個整數n, m。

接下來的m行,每行有三個整數u, v, l,表示u到v有一條長度為l的邊。

輸出格式

共n-1行,第i行表示1號點到i+1號點的最短路。

樣例輸入

3 31 2 -1

2 3 -1

3 1 2

樣例輸出

-1-2

資料規模與約定

對於10%的資料,n = 2,m = 2。

對於30%的資料,n <= 5,m <= 10。

對於100%的資料,1 <= n <= 20000,1 <= m <= 200000,-10000 <= l <= 10000,保證從任意頂點都能到達其他所有頂點。

分析:求帶負邊權的圖的最短路徑,用spfa。設定佇列儲存節點,每當隊首點的相鄰節點不在佇列中時將其入隊,直到隊空為止。此時各節點到根節點的路徑長度即為最短路徑。

(沒看到題目是有向圖,改了好長時間不知道錯哪……)

**:

#include#include#include#include#define maxn 20001

#define inf 0x3fffffff

using namespace std;

struct node ;

int n, m;

int inqueue[maxn] = ;

int d[maxn] = ;

vectoradj[maxn];

void spfa()

}} }

}int main() );

} spfa();

for (int i = 2; i <= n; i++)

return 0;

}

藍橋杯 ALGO 5 最短路

給定乙個n個頂點,m條邊的有向圖 其中某些邊權可能為負,但保證沒有負環 請你計算從1號點到其他點的最短路 頂點從1到n編號 第一行兩個整數n,m。接下來的m行,每行有三個整數u,v,l,表示u到v有一條長度為l的邊。1 n 20000,1 m 200000,10000 l 10000 保證從任意頂點...

藍橋杯 ALGO 5最短路

問題描述 給定乙個n個頂點,m條邊的有向圖 其中某些邊權可能為負,但保證沒有負環 請你計算從1號點到其他點的最短路 頂點從1到n編號 輸入格式 第一行兩個整數n,m。接下來的m行,每行有三個整數u,v,l,表示u到v有一條長度為l的邊。輸出格式 共n 1行,第i行表示1號點到i 1號點的最短路。樣例...

藍橋杯 ALGO 5 演算法訓練 最短路

問題描述 給定乙個n個頂點,m條邊的有向圖 其中某些邊權可能為負,但保證沒有負環 請你計算從1號點到其他點的最短路 頂點從1到n編號 輸入格式 第一行兩個整數n,m。接下來的m行,每行有三個整數u,v,l,表示u到v有一條長度為l的邊。輸出格式 共n 1行,第i行表示1號點到i 1號點的最短路。樣例...