记录编号 159243 评测结果 AAAAAAAAAA
题目名称 超牛冠军赛 最终得分 100
用户昵称 GravatarRa-xp 是否通过 通过
代码语言 C++ 运行时间 0.240 s
提交时间 2015-04-20 14:35:49 内存使用 15.74 MiB
显示代码纯文本
#include<iostream>
#include<fstream>
#include<string>
#include<algorithm>
#include<vector>
#include<cmath>
#include<stack>
#define MAXN 2000+10
using namespace std;
int i, j, n, m;
int list[MAXN];
int key[MAXN]={0},w[MAXN][MAXN];
long long ans=0;

void prim()
{
	bool b[MAXN]={0};
	int u;
	key[1]=9999999;
	ans=ans-9999999;
	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]&&w[u][i]>key[i])
				key[i]=w[u][i];
		}
	}
}
int main()
{
	freopen("superbull.in","r",stdin);
	freopen("superbull.out","w",stdout);
	cin>>n;
	for(i=1;i<=n;i++)
	{
		cin>>list[i];
	}
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
		{
			w[i][j]=list[i]^list[j];
		}
	}
	prim();
	cout<<ans<<endl;
	
	return 0;
}