问题描述
给出相连边及权值,求最长路。
样例输入
5 5
1 2 2
2 4 9
1 3 7
3 4 1
4 5 6
样例输出
17
算法讨论
就是把最短路的判断改一下而已。
const
maxn=100;
var
a:array[1..maxn,1..maxn] of longint;
i,j,k,n,m,x,y,z,max:longint;
begin
read(n,m);
for i:=1 to m do
begin
read(x,y,z);
a[x,y]:=z
end;
for k:=1 to n do
for i:=1 to n do
for j:=1 to n do
if (i<>j) and (j<>k) and (i<>k) then
if (a[i,k]+a[k,j]>a[i,j]) and (a[i,k]<>0) and (a[k,j]<>0)
then a[i,j]:=a[i,k]+a[k,j];
for i:=1 to n do
for j:=1 to n do
if a[i,j]>max
then max:=a[i,j];
write(max)
end.
Pixiv ID:59947939