比赛 20121107 评测结果 C
题目名称 小树 最终得分 0
用户昵称 乔治文 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2012-11-07 11:48:52
显示代码纯文本
var
  i,j,k,n,w,t,flag,x,y,p,l:longint;
  a,mark,pp:array[0..1000] of longint;
  f:array[0..10000,0...1000] of longint;
  s:real;
function getw(p:longint):longint;
var
    ans:longint;
begin
     ans:=0;
     inc(mark[p]);
     if a[p]<>-1 then
     ans:=getw(a[p])+f[a[p],p];
     exit(ans);
end;
procedure search(p:longint);
var
   i:longint;
begin
      pp[p]:=1;
      if p=n then
      begin
           w:=0;
           d:=0;
           flag:=0;
           for i:=1 to n-1 do
           if pp[i]=1 then
           begin
                w:=w+getw(i);
           end;
           for j:=1 to n-1 do
           if mark[j]>1 then
           flag:=1
           else
           d:=d+1;
           if flag<>1 then
           begin
                 if d<>0 then
                 then begin
                         if s<(w/d) then
                         s:=(w/d);
                        end;
           end;
      end
      else
           begin
                 search(p+1);
                 pp[p]:=0;
                 search(p+1);
           end;
end;
procedure doit();
begin
      read(n);
      for i:=1 to n-1 do
      begin
           read(x,y,p);
           a[y]:=x;
           f[x,y]:=p;
      end;
      s:=0;
      fillchar(mark,sizof(mark),0);
      a[0]:=-1;
      if n<>1 then
      begin
            search(1);
            writeln(s:0:2);

      end
      else
          writeln(s:0:2);
end;
begin
       assign(input,'treec.in');
       reset(input);
       assign(output,'treec.out');
       rewrite(output);
       read(p);
       for l:=1 to p do
       doit();
      close(input);
      close(output);
end.