{<Floyed><O(N*N*N)>}
const
maxn=300;
var
{data of Floyed}
n:longint; g:array[1..maxn,1..maxn] of longint;
function min(a,b:longint):longint; begin if a<b then exit(a) else exit(b); end;
{procedure of Floyed}
procedure Floyed;
var
i,j,k:longint;
begin
for k:=1 to n do
for i:=1 to n do
if i<>k then
for j:=1 to n do
if (j<>k)and(j<>i) then
g[i,j]:=min(g[i,j],g[i,k]+g[k,j]);
end;
Floyed算法模版
最新推荐文章于 2022-04-19 22:52:09 发布