#include using namespace std;
const double max = -1000000.0;
typedef struct
edge;
edge e[201];
int n; //貨幣種數
int m; //銀行總數
int s; //初始貨幣型別
double v; //初始財產
double d[101]; //源點s到各點的最小距離
int main()
for(i = 1; i <= n; i++)
d[i] = max;
d[s] = v;
/*優化的bellman-ford
從第一次到第n-1次迴圈中,若有一次所有的邊都沒有鬆弛,以後所有邊也不需要鬆弛,顯然演算法可以終止!
bellman-ford演算法在做完n-1次之後,若不存在正環,肯定會收斂,即第n次跳出(此時還要判斷d[s]的值是否增加)。再做一次,
即到第n次還滿足鬆弛條件,說明存在正環*/
for(i = 1; i <= n; i++)
}if(!flag) break;
} if(i == n + 1)
cout<<"yes\n";
else
return 0;
}
參加poj1860,3259 單源最短路
題目描述 給出乙個有向圖,請輸出從某一點出發到所有點的最短路徑長度。輸入第一行包含三個整數n m s,分別表示點的個數 有向邊的個數 出發點的編號。接下來m行每行包含三個整數fi gi wi,分別表示第i條有向邊的出發點 目標點和長度。輸出n行,每行n個用空格分隔的整數,其中第i個整數表示從點s出發...
單源最短路
恢復內容開始 dijkstra spfa floyd多源變單源 熱浪 模板題 使用spfa過 spfa 從佇列中取出點進行鬆弛操作 使用st記錄點是否還在佇列中 如果這個點本來就存在佇列中那麼就重複加入點了void spfa int s 信使 廣播式求時間 求廣播所有點的最短時間 每個點接受到向他的...
多源最短路和單源最短路
多源最短路 例題 usaco08open clear and present danger s 單源最短路例題 dijkstra求最短路 i 給定乙個n個點m條邊的有向圖,圖中可能存在重邊和自環,所有邊權均為正值。請你求出1號點到n號點的最短距離,如果無法從1號點走到n號點,則輸出 1。輸入格式 第...