顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
0
8
inf
inf
inf
inf
7
8
inf
inf
inf
8
0
3
inf
inf
inf
inf
inf
inf
inf
inf
inf
3
0
5
6
inf
5
inf
inf
inf
inf
inf
inf
5
0
1
inf
inf
inf
inf
inf
12
inf
inf
6
1
0
2
inf
inf
7
inf
10
inf
inf
inf
inf
2
0
9
inf
3
inf
inf
7
inf
5
inf
inf
9
0
inf
inf
inf
inf
8
inf
inf
inf
inf
inf
inf
0
9
inf
inf
inf
inf
inf
inf
7
3
inf
9
0
2
inf
inf
inf
inf
inf
inf
inf
inf
inf
2
0
2
inf
inf
inf
12
10
inf
inf
inf
inf
2
0
0
8
inf
inf
inf
inf
7
8
inf
inf
inf
8
0
3
inf
inf
inf
inf
inf
inf
inf
inf
inf
3
0
5
6
inf
5
inf
inf
inf
inf
inf
inf
5
0
1
inf
inf
inf
inf
inf
12
inf
inf
6
1
0
2
inf
inf
7
inf
10
inf
inf
inf
inf
2
0
9
inf
3
inf
inf
7
inf
5
inf
inf
9
0
inf
inf
inf
inf
8
inf
inf
inf
inf
inf
inf
0
9
inf
inf
inf
inf
inf
inf
7
3
inf
9
0
2
inf
inf
inf
inf
inf
inf
inf
inf
inf
2
0
2
inf
inf
inf
12
10
inf
inf
inf
inf
2
0
0
8
inf
inf
inf
inf
7
8
inf
inf
inf
8
0
3
inf
inf
inf
inf
inf
inf
inf
inf
inf
3
0
5
6
inf
5
inf
inf
inf
inf
inf
inf
5
0
1
inf
inf
inf
inf
inf
12
inf
inf
6
1
0
2
inf
inf
7
inf
10
inf
inf
inf
inf
2
0
9
inf
3
inf
inf
7
inf
5
inf
inf
9
0
inf
inf
inf
inf
8
inf
inf
inf
inf
inf
inf
0
9
inf
inf
inf
inf
inf
inf
7
3
inf
9
0
2
inf
inf
inf
inf
inf
inf
inf
inf
inf
2
0
2
inf
inf
inf
12
10
inf
inf
inf
inf
2
0
没办法,只能顶一下了!~
% Floyd’s Algorithm
function =fun(lines)
a=lines;
n=size(a,1);
% 设置D和path的初值
D=a;
path=zeros(n,n);
for i=1:n
for j=1:n
if D(i,j)~=inf
path(i,j)=j; %j是i的后继点
end
end
end
% 做n次迭代,每次迭代均更新D(i,j)和path(i,j)
for k=1:n
for i=1:n
for j=1:n
if D(i,k)+D(k,j)<D(i,j)
D(i,j)=D(i,k)+D(k,j); %修改长度
path(i,j)=path(i,k); %修改路径
end
end
end
end
没办法,只能顶一下了!~
没办法,只能顶一下了!~