【题意】
给出2^n个球队之间互相的胜率,求哪个球队胜率最高。
比赛以淘汰赛形式进行。
【输入】
多组数据,第一行一个整数n,意义如上
接下来一个2^n*2^n的矩阵,表示球队之间的胜率
【输出】
对于每组数据,输出胜率最高的球队的编号,相同的时候输出编号小的
模拟一下,算出每轮每个球队的胜率即可
program poj3071;
var
n,i,j,k,o:longint;
p:array [0..129,0..129] of double;
f:array [0..8,0..129] of double;
begin
repeat
read(n);
if n=-1 then break;
for i:=1 to 1 shl n do
for j:=1 to 1 shl n do
read(p[i][j]);
fillchar(f,sizeof(f),0);
for i:=1 to 1 shl n do
f[0,i]:=1;
for i:=1 to n do
for j:=1 to 1 shl n do
begin
o:=(j-1) div (1 shl (i-1));
if o and 1 = 0 then inc(o)
else dec(o);
for k:=o*(1 shl (i-1))+1 to (o+1)*(1 shl (i-1)) do
f[i,j]:=f[i,j]+p[j,k]*f[i-1,j]*f[i-1,k];
end;
k:=1;
for i:=1 to 1 shl n do
if f[n,i]>f[n,k] then k:=i;
writeln(k);
until false;
end.