比赛 20150420 评测结果 AAAAAAAAAA
题目名称 超牛冠军赛 最终得分 100
用户昵称 slyrabbit 运行时间 0.263 s
代码语言 C++ 内存使用 15.67 MiB
提交时间 2015-04-20 09:11:32
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
const int MAX=9999999;
int a[2005],key[2005]={0},n;
int G[2005][2005];
long long ans=0;
/*================================================================*/
void init()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			G[i][j]=a[i]^a[j];
		}
	}
}
void prim()
{
	bool b[2005]={0};
	int u;
	key[1]=MAX;
	ans-=MAX;
	for(int i=0;i<=n;i++)
	{
		u=0;key[u]=0;
		for(int i=1;i<=n;i++)
		{
			if(!b[i]&&key[i]>key[u])
				u=i;
		}
		b[u]=1;ans+=key[u];
		for(int i=1;i<=n;i++)
		{
			if(!b[i]&&G[u][i]>key[i])
				key[i]=G[u][i];
		}
	}
}
int main()
{
	freopen("superbull.in","r",stdin);
	freopen("superbull.out","w",stdout);
	init();
	prim();
	cout<<ans;
	return 0;
}