比赛 |
20111104 |
评测结果 |
AAAAAAAAAA |
题目名称 |
网球赛 |
最终得分 |
100 |
用户昵称 |
Czb。 |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2011-11-04 21:29:23 |
显示代码纯文本
#include<stdio.h>
int n,m,an;
double a[1025][1025],ans[11][1025];
int v[1025][1025];
int main()
{
freopen("elimination.in","r",stdin);
freopen("elimination.out","w",stdout);
int i,j,k,t;
scanf("%d",&n);
m=1<<n;
for(i=1;i<=m;i++)
{
for(j=1;j<=m;j++)
{
scanf("%lf",&a[i][j]);
a[i][j]/=100.0;
}
}
v[1][1]=1;
for(k=0;k<n;k++)
{
t=1<<k;
for(i=1;i<=t;i++)
{
for(j=1;j<=t;j++)
{
v[i+t][j]=v[i][j+t]=v[i][j]+t;
v[i+t][j+t]=v[i][j];
}
}
}
t=1;
for(i=1;i<=m;i++)
ans[0][i]=1.0;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
for(k=t+1;k<=(t<<1);k++)
{
ans[i][j]+=ans[i-1][v[j][k]]*a[j][v[j][k]];
}
ans[i][j]*=ans[i-1][j];
}
t=t<<1;
}
for(i=1;i<=m;i++)
if(ans[n][i]>ans[n][an])
an=i;
printf("%d\n",an);
return 0;
}