比赛 Asm.Def战记之圣地亚哥“杯2015 评测结果 AAAAAAAAAA
题目名称 Asm.Def的游戏 最终得分 100
用户昵称 Fmuckss 运行时间 0.136 s
代码语言 C++ 内存使用 2.22 MiB
提交时间 2015-10-31 11:49:05
显示代码纯文本
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<stdlib.h>
#include<string>
#include<string.h>
#include<vector>
#include<map>
#include<queue>
#define maxn 100050
using namespace std;
int n,m;
int ans=0;
queue<int> q;
struct node{
	vector <int> ne;
	int tot;
	bool del;
}ns[maxn];
void read(){
	scanf("%d %d",&n,&m);
	for(int i=1;i<=m;i++){
		int a,b;
		scanf("%d %d",&a,&b);
		ns[a].ne.push_back(b);
		ns[b].ne.push_back(a);
		ns[a].tot++;
		ns[b].tot++;
	}
}
void del(){
	while(!q.empty()){
		int tmp=q.front();
		q.pop();
		if(ns[tmp].del)continue;
		ns[tmp].del=true;
		for(int i=0;i<ns[tmp].ne.size();i++){
			if(ns[ns[tmp].ne[i]].del) continue;
			ns[ns[tmp].ne[i]].tot--;
			if(ns[ns[tmp].ne[i]].tot<=2)
				q.push(ns[tmp].ne[i]);
		}
	}
}
void solve(){
	for(int i=1;i<=n;i++){
		if(ns[i].tot<3){
			q.push(i);
		}
	}
	del();
	for(int i=1;i<=n;i++){
		if(!ns[i].del)	ans^=i;
	}
}
int main(){
	freopen("asm_game.in","r",stdin);
	freopen("asm_game.out","w",stdout);
	read();
	solve();
	printf("%d",ans);
	return 0;
}