// 負環を処理負重量 // 我々が負のサイクルを見つけることができる場合は、一般的に存在しない // 最小距離は負の無限大であり得ることを負ループ場合 の#include <CStringの> する#include <iostreamの> 使用して 名前空間STD; CONST INT N = 1E4 + 1。; 構造体のエッジ{ INT A、 INT B; INT W; }エッジ[N]; int型N-、M、K; INT DIST [N]、バックアップ[N]; ボイドbellman_ford(){ memsetの(DIST 、は0x3F、はsizeof DIST); DIST [ 1 ] = 0 ; /// / K番目の反復示しもはやKエッジは、各点から来るより ため(INT I = 0 ;私は<K; I ++ ){ memcpyを(バックアップ、DIST、はsizeof DIST); // バックアップしませんバックアップ系列なしで起こり得る ための(INT = J 0、J <M、J ++ ){ int型 A =エッジ[J] II.A、B =エッジ[J] .B、W = エッジ[J] .W。 DIST [ B] =分(DIST [B]、バックアップ[] + W); // 時間だけ費やす } } IF(DIST [N - ]> 0x3f3f3f3f / 2)COUT << " 不可" 、 他のCOUT << DIST [N]。 } int型のmain(){ CIN >> N >> M >> K。 以下のために(INT iは= 0 ; I <M; iは++ ){ int型、B、W。 CIN >> B >> ワット。 エッジ[I] = {A、B、W}。 } )(bellman_ford。 リターン 0 ; }