比赛 Asm.Def战记之圣地亚哥“杯2015 评测结果 AAAAAAAAAA
题目名称 Asm.Def的游戏 最终得分 100
用户昵称 欧鹰123 运行时间 0.053 s
代码语言 C++ 内存使用 33.31 MiB
提交时间 2019-10-23 17:54:03
显示代码纯文本
#include<bits/stdc++.h>

using namespace std;

int n,m,in[1000500],cnt,head[1050000],ans,vis[1000500];

struct node{
	int u,v;
}a[1050000];

inline int read()
{
	int x=1,w=0;
	
	char ch=getchar();
	
	for(;ch<'0'||ch>'9';ch=getchar()) if(ch=='-') x=-1;
	
	for(;ch>='0'&&ch<='9';ch=getchar()) w=w*10+ch-'0';
	
	return w*x;
}

void add(int u,int v)
{
	a[++cnt].u=head[u];
	
	head[u]=cnt;
	
	a[cnt].v=v;
}

queue<int>q;

int main()
{
	freopen("asm_game.in","r",stdin);
	
	freopen("asm_game.out","w",stdout);
	
	n=read();m=read();
	
	for(int i=1;i<=m;i++)
	{
		int u,v;
	
		u=read();v=read();
		
		in[u]++;in[v]++;
		
		add(u,v);
		
		add(v,u);
	}
	
	for(int i=1;i<=n;i++) if(in[i]<3) q.push(i);
	
	while(!q.empty())
	{
		int u=q.front();
		
		q.pop();
		
		if(vis[u]==1) continue;
		
		vis[u]=1;
		
		for(int i=head[u];i;i=a[i].u)
		{
			int v=a[i].v;
			
			if(in[v]<3) continue;
			
			in[v]--;
			
			if(in[v]<3&&vis[v]!=1) q.push(v);
		}
	}
	
	//int j;
	
	//for(j=1;j<=n;j++) if(vis[j]==0) break; 
	
	//ans=j;
	
	for(int i=1;i<=n;i++) if(vis[i]==0) ans=ans^i;
	
	cout<<ans;
	
	return 0;
}