比赛 Asm.Def战记之圣地亚哥“杯2015 评测结果 AWAWWWWEEE
题目名称 Asm.Def的游戏 最终得分 20
用户昵称 coo 运行时间 0.271 s
代码语言 C++ 内存使用 4.20 MiB
提交时间 2015-10-31 11:56:10
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<string>
#include<vector>
using namespace std;
int m,n,k,l=0;
int k2=0,k1=0;
int a,b,f[1005][1005],p[10005];
int main()
{
	freopen("asm_game.in","r",stdin);
	freopen("asm_game.out","w",stdout);
	for(int i=1;i<=n;i++)
	for(int j=1;j<=n;j++)
	f[i][j]=0;
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		cin>>a>>b;
		p[a]++;
		p[b]++;
		f[b][a]=f[a][b]=1;
	}
	for(int i=1;i<=n;i++)
	    {
		     if(p[i]<=-1)k1++;
		     if(p[i]>=3)k1++;
	    }
	while(k1<n)
	{ 
	    for(int j=1;j<=n;j++)
    	if(p[j]<3)
    	{
	    	p[j]=-1;
	    	for(int i=1;i<=n;i++)
	    	{
		        if(f[i][j]==1){
		    	 p[i]-=1;
		    	 f[j][i]=f[i][j]=0;
			     }
	    	}
    	}
    	for(int i=1;i<=n;i++)
	    {
		     if(p[i]<=-1)k1++;
		     if(p[i]>=3)k1++;
	    }
	}
	
	for(int i=1;i<=n;i++)
	if(p[i]>=3){k=i;l++;break;}
	int ii=k;
	for(int i=ii+1;i<=n;i++)
	if(p[i]>=3){k=k xor i;l++;}
	if(l>0)cout<<k<<endl;
	else cout<<0<<endl;
	return 0;
}