记录编号 159291 评测结果 AAAAAAAAAA
题目名称 超牛冠军赛 最终得分 100
用户昵称 Gravatarslyrabbit 是否通过 通过
代码语言 C++ 运行时间 0.233 s
提交时间 2015-04-20 18:27:31 内存使用 14.10 MiB
显示代码纯文本
    #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;
    }