比赛 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;
}