比赛 20121107 评测结果 W
题目名称 小树 最终得分 15
用户昵称 DMC_DY 运行时间 0.007 s
代码语言 Pascal 内存使用 0.21 MiB
提交时间 2012-11-07 10:43:12
显示代码纯文本
var t,n,i,j,k,o,pt,l:longint; a,b,q:array[0..1000]of longint; p,pre,c:array[0..2000]of longint;
    f,g:array[0..1000]of real; ans:real;
procedure sou(x:longint);
var i,j:longint; u,v:real;
begin
 i:=a[x]; if i=0 then begin f[x]:=b[x]; g[x]:=q[x]; end;
 while i<>0 do
  begin
   j:=p[i]; b[p[i]]:=b[x]+c[i]; q[p[i]]:=q[x]+1;
   sou(j);
   u:=b[j]; v:=q[j];
   if(g[x]=0)or(u/v>f[x]/g[x])then
    begin f[x]:=f[x]+u; g[x]:=g[x]+v; end;
   i:=pre[i];
  end;
end;
begin
assign(input,'treec.in'); assign(output,'treec.out'); reset(input); rewrite(output);
 readln(t);
 for o:=1 to t do begin
  readln(n); fillchar(p,sizeof(p),0); pt:=0; fillchar(pre,sizeof(pre),0); fillchar(a,sizeof(a),0);
  for i:=1 to n-1 do
   begin
    readln(j,k,l); inc(pt); p[pt]:=k; pre[pt]:=a[j]; a[j]:=pt; c[pt]:=l;
   end;
  sou(0); i:=a[0];
  while i<>0 do
   begin
    if f[p[i]]/g[p[i]]>ans then ans:=f[p[i]]/g[p[i]];
    i:=pre[i];
   end;
 writeln(ans:0:2);
 end;
close(input); close(output); 
end.