Josephus排列問題定義如下:假設(shè)n個(gè)競賽者排成一個(gè)環(huán)形。給定一個(gè)正整數(shù)m,從某個(gè)指定的第一個(gè)人開始,沿環(huán)計(jì)數(shù),每遇到第m個(gè)人就讓其出列,且計(jì)數(shù)繼續(xù)進(jìn)行下去。這個(gè)過程一直到所有的人都出列為止。最后出列都優(yōu)勝者。每個(gè)人出列的次序定義了整數(shù)1,2,...,n的一個(gè)排列。這個(gè)排列稱為一個(gè)(n,m)Josephus排列。例如,(7,3)Josephus排列為3,6,2,7,5,1,4.對(duì)于給定的1,2,...n中的k個(gè)數(shù),Josephus想知道是否存在一個(gè)正整數(shù)m(n,m)Josephus排列的最后k個(gè)數(shù)為事先指定的這k個(gè)數(shù)。
標(biāo)簽:
Josephus
定義
競賽
環(huán)形
上傳時(shí)間:
2015-09-20
上傳用戶:zycidjl
Floyd-Warshall算法描述
1)適用范圍:
a)APSP(All Pairs Shortest Paths)
b)稠密圖效果最佳
c)邊權(quán)可正可負(fù)
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)算法結(jié)束:dis即為所有點(diǎn)對(duì)的最短路徑矩陣
3)算法小結(jié):此算法簡單有效,由于三重循環(huán)結(jié)構(gòu)緊湊,對(duì)于稠密圖,效率要高于執(zhí)行|V|次Dijkstra算法。時(shí)間復(fù)雜度O(n^3)。
考慮下列變形:如(I,j)∈E則dis[I,j]初始為1,else初始為0,這樣的Floyd算法最后的最短路徑矩陣即成為一個(gè)判斷I,j是否有通路的矩陣。更簡單的,我們可以把dis設(shè)成boolean類型,則每次可以用“dis[I,j]:=dis[I,j]or(dis[I,k]and dis[k,j])”來代替算法描述中的藍(lán)色部分,可以更直觀地得到I,j的連通情況。
標(biāo)簽:
Floyd-Warshall
Shortest
Pairs
Paths
上傳時(shí)間:
2013-12-01
上傳用戶:dyctj