/*對所有的邊進行n-1次的鬆弛操作
檢測乙個圖是否有負權迴路:如果在n-1鬆弛之後最短路仍然會發生變化,則改圖必然存在負權迴路
在實際操作中,bellman-ford演算法經常會在未達到n-1輪鬆弛前就已經計算出最短路,n-1其實是最大值
因此可以新增乙個變數check用來標記陣列dis在本輪鬆弛中是否發生了變化,如果沒有發生變化,則可以提前跳出迴圈
*/#include "stdio.h"
int main()
//初始化dis陣列,這裡是1號頂點到其餘各個頂點的初始路程
for(i = 1;i <= n;i++)
dis[1] = 0;
//bellman-ford演算法核心語句
for(k = 1;k <= n - 1;k++)
}//鬆弛完畢後檢測陣列dis是否有更新
if(check == 0)
}//檢測負權迴路
flag = 0;
for(i = 1;i <= m;i++)
}if(flag == 1)
else
}getchar();getchar();
return 0;}/*
示例輸入:
5 52 3 2
1 2 -3
1 5 5
4 5 2
3 4 3
示例輸出:
0 -3 -1 2 4
*/
《柯爾特思維教程》 第6章(行動) 第3節 縮小
學習目的 在有關某個問題的一大堆資訊中,你如何才能挑選出最適合你的 最關鍵的觀點?這就需要你學會使用 縮小 這種思維方法。問題 對於乙個推銷員來說,顧客是什麼?有許多關於這個話題的觀點 顧客是任何生意中最重要的人。顧客不必依靠我們,我們必須依靠顧客。顧客的光顧不是對我們工作的打擾,而是我們工作的目的...
第3章 第2 2節 預編譯
2.1 函式宣告整體提公升 2.2 變數宣告提公升 2.3 預編譯前奏 1.imply global 暗示全域性變數 即任何變數,如果變數未經宣告就賦值,此變數就為全域性物件所有。eg a 123 eg var a b 123 2.一切宣告的全域性變數,全是window的屬性。eg var a 12...
第3章 第2 2節 預編譯
2.1 函式宣告整體提公升 2.2 變數宣告提公升 2.3 預編譯前奏 1.imply global 暗示全域性變數 即任何變數,如果變數未經宣告就賦值,此變數就為全域性物件所有。eg a 123 eg var a b 123 2.一切宣告的全域性變數,全是window的屬性。eg var a 12...