Floyd-Warshall算法描述 1)適用范圍: a)APSP(All Pairs Shortest Paths) b)稠密圖效果最佳 c)邊權可正可負 2)算法描述: a)初始化:dis[u,v]=w[u,v] b)For k:=1 to n For i:=1 to n For j:=1 to n If dis[i,j]>dis[i,k]+dis[k,j] Then Dis[I,j]:=dis[I,k]+dis[k,j] c)算法結束:dis即為所有點對的最短路徑矩陣 3)算法小結:此算法簡單有效,由于三重循環結構緊湊,對于稠密圖,效率要高于執行|V|次Dijkstra算法。時間復雜度O(n^3)。 考慮下列變形:如(I,j)∈E則dis[I,j]初始為1,else初始為0,這樣的Floyd算法最后的最短路徑矩陣即成為一個判斷I,j是否有通路的矩陣。更簡單的,我們可以把dis設成boolean類型,則每次可以用“dis[I,j]:=dis[I,j]or(dis[I,k]and dis[k,j])”來代替算法描述中的藍色部分,可以更直觀地得到I,j的連通情況。
標簽: Floyd-Warshall Shortest Pairs Paths
上傳時間: 2013-12-01
上傳用戶:dyctj
USB HID R/W 測試程式, 從網路上抓下來, 並修正其問題
上傳時間: 2016-02-20
上傳用戶:米卡
野人與修道士問題 這是一個古典的問題.假設有n個修道士和n個野人準備渡河,但只有一條能容納c人的小船,為了防止野人侵犯修道士,要求無論在何處,修道士的個數不得少于野人的人數(除非修道士個數為0).如果兩種人都會劃船,試設計一個算法,確定他們能否渡過河去,若能,則給出一個小船來回次數最少的最佳方案. 要求: (1) 用一個三元組(x1,x2,x3)表示渡河過程中各個狀態.其中,x1表示起始上岸修道士個數,x2表示起始岸上野人個數,x3表示小船位置(0-在目的岸,1-在起始岸).例如(2,1,1),表示起始岸有兩個修道士,一個野人,小船在起始岸一邊. 采用鄰接表做為存儲結構,將各種狀態之間的遷移圖保存下來. (2)采用廣度搜索法,得到首先搜索到邊數最少的一條通路. (3)輸出數據 若問題有解(能渡過河去),則輸出一個最佳方案.用三元組表示渡河過程中的狀態,并用箭頭指出這些狀態之間的遷移: 目的狀態<-...中間狀態<-...初始狀態. 若問題無解,則給出"渡河失敗"的信息. (4)求出所有的解.
上傳時間: 2016-02-23
上傳用戶:chenlong
Welch法:Welch法對Bartlett法進行了兩方面的修正:一是選擇適當的窗函數w(n),并在周期圖計算前直接加進去,加窗的優點是無論什么樣的窗函數均可使譜估計非負。二是在分段時,可使各段之間有重疊,這樣會使方差減小。
上傳時間: 2016-03-03
上傳用戶:xcy122677
用C語言解決約瑟夫環問題,約瑟夫環問題描述:設編號為1,2,…,n(n>0)個人按順時針方向圍坐一圈,每人持有一個正整數密碼(可用隨機數產生)。開始時任意給出一個報數上限值m,從第一個人開始順時針方向自1起順序報數,報到m時停止報數,報m的人出列,將他的密碼作為新的m值,從他在順時針方向上的下一個人起重新自1起順序報數,報到新m值的人出列;如此下去,直到所有人全部出列為止。要求設計一個程序模擬此過程,并給出出列人的編號序列。
上傳時間: 2014-11-21
上傳用戶:yepeng139
數據結構 1、算法思路: 哈夫曼樹算法:a)根據給定的n個權值{W1,W2… ,Wn }構成 n棵二叉樹的集合F={T1,T2…,T n },其中每棵二叉樹T中只有一個帶權為W i的根結點,其左右子樹均空;b)在F中選取兩棵根結點的權值最小的樹作為左右子樹構造一棵新的二叉樹,且置新的二叉樹的根結點的權值為其左、右子樹上結點的權值之和;c)F中刪除這兩棵樹,同時將新得到的二叉樹加入F中; d)重復b)和c),直到F只含一棵樹為止。
上傳時間: 2016-03-05
上傳用戶:lacsx
簡單的floyd運用 第一行輸入一個整數C。C是測試的情況(0< C <=30).第二行一個正整數N( 0< N <=100),表示道路的總數.緊接N行,每一行包含兩個字符串, Si,,Ti,和一個整數Di,代表從Si到Ti的距離(0<= Di <=150)。最后一行有兩個字符串,S 和 T,你得找出從S 到 T的最短的距離。地名是不超過120個小寫字符的串(從‘a’到‘z’)。假設這里最多有100條直接連通兩個地方的路。 Output 輸出包含C行,每一行對一種測試情況。對每一種測試情況,輸出包含一個整數,假如S 到 T存在一條最短的路,輸出從S到T的最短距離,否則輸出“-1”. Sample Input 2 2 jiuzhouriver liuchi 89 liuchi liyuan 100 liuchi jiuzhouriver 3 youyongchi fengyuan 100 qinshi meiyuan 100 chaochang supermarkt 100 meiyuan youyongchi Sample Output 89 -1
上傳時間: 2016-03-10
上傳用戶:wyc199288
這是 一個電梯模擬的C++程序...分成N個文件運行..實現自動模擬
上傳時間: 2014-10-31
上傳用戶:笨小孩
n皇后問題的C語言實現,有圖形界面的,非常之經典的程序,用的是回溯法
上傳時間: 2014-11-22
上傳用戶:lunshaomo
運動會分數統計 參加運動會的n個學校編號為1~n。比賽分成m個男子項目和w個女子項目,項目編號分別為1~m和m+1~m+w。由于各項目參加人數差別較大,有些項目取前五名,得分順序為7,5,3,2,1;還有些項目只取前三名,得分順序為5,3,2。寫一個統計程序產生各種成績單和得分報表
上傳時間: 2016-03-23
上傳用戶:zhuyibin