問題描述
給定乙個n個頂點,m條邊的有向圖(其中某些邊權可能為負,但保證沒有負環)。請你計算從1號點到其他點的最短路(頂點從1到n編號)。
輸入格式
第一行兩個整數n, m。
接下來的m行,每行有三個整數u, v, l,表示u到v有一條長度為l的邊。
輸出格式
共n-1行,第i行表示1號點到i+1號點的最短路。
樣例輸入
3 3
1 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,保證從任意頂點都能到達其他所有頂點。
分析:1.n個點,m條有向邊,含有負邊
1.外層迴圈n-1次,內層迴圈m次,進行鬆弛
3.新增check變數判斷本輪是否進行鬆弛了,如果未進行鬆弛則可以提前退出迴圈(否則會超時)
4.處理有向邊時,注意u[i]和v[i]的順序不要顛倒~
#include using namespace std;
int main() , u[200001], v[200001],w[200001];
int n, m, inf = 99999999;
fill(dis+2,dis+20001,inf);
scanf("%d %d", &n, &m);
for(int i = 1; i <= m; i++)
scanf("%d %d %d",&u[i], &v[i], &w[i]);
for(int k = 1; k <= n - 1; k++)
}if(check == 0) break;
}for(int i = 2; i <= n; i++)
printf("%d\n",dis[i]);
return 0;
}
藍橋杯 ALGO 5 最短路
演算法訓練 最短路 時間限制 1.0s 記憶體限制 256.0mb 問題描述 給定乙個n個頂點,m條邊的有向圖 其中某些邊權可能為負,但保證沒有負環 請你計算從1號點到其他點的最短路 頂點從1到n編號 輸入格式 第一行兩個整數n,m。接下來的m行,每行有三個整數u,v,l,表示u到v有一條長度為l的...
藍橋杯 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號點的最短路。樣例...