a:array[1..100,1..100]of extended;
b,c:array[1..100]of longint;
begin
readln(n,v);
for i:=1 to n do
for j:=1 to n do
a[i,j]:=100000;
for i:=1 to n do begin
readln(b[i],c[i],f);
if f<>0 then begin
a[i,f]:=sqrt((b[i]-b[f])*(b[i]-b[f])+(c[i]-c[f])*(c[i]-c[f]))/v;
a[f,i]:=a[i,f];
end;
end;
for i:=1 to n-1 do begin
for f:=i+1 to n do begin
if (b[i]=b[f]) and (c[i]>c[f]) then a[i,f]:=sqrt((c[f]-c[i])*(c[f]-c[i])/5);
if (b[i]=b[f]) and (c[f]>c[i]) then a[f,i]:=sqrt((c[f]-c[i])*(c[f]-c[i])/5);
end;
end;
for k:=1 to n do begin
for i:=1 to n do begin
for j:=1 to n do begin
if a[i,k]+a[k,j]<a[i,j] then a[i,j]:=a[i,k]+a[k,j];
end;
end;
end;
write(a[1,n]:0:2);
end.
公式为 0.5*g*t^2=h
因此时间等于 t=sqrt((h乘以2)/g)
而不是高度的平方乘以2/g
说好的悬赏呢?
1条是直接爬过去 一条是用自由落体的
因为你是用floyed 所以你要保留时间比较短的那一条边
当爬的速度v很大的时候显然是比自由落体快的……