比赛 Asm.Def战记之圣地亚哥“杯2015 评测结果 AAAAAAAATT
题目名称 Asm.Def的游戏 最终得分 80
用户昵称 sxysxy 运行时间 2.227 s
代码语言 C++ 内存使用 2.22 MiB
提交时间 2015-10-31 09:07:16
显示代码纯文本
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <vector>
using namespace std;

unsigned r = 0;
int n,m;
class node
{
public:
	vector<int>to;
	int degree;
	bool alive;
	node()
	{
		to.clear();
		degree = 0;
		alive = true;
	}
};

node ns[100001];

void solve2()
{
	int i;
	for(i = 1; i <= n; i++)
	{
		if(ns[i].alive)
		{
			r = r ^ i;
		}
	}
}

void solve()
{
	int i,j;
	for(i = 1; i <= n; )
	{
		if(ns[i].degree < 3 && ns[i].alive)
		{
			ns[i].alive = false;
			for(j = 0; j < ns[i].to.size(); j++)
			{
				ns[ns[i].to[j]].degree--;
			} 
			i = 1;
		}else
		{
			i++;
		}
	}
	solve2();
}

int main()
{
	freopen("asm_game.in", "r", stdin);
	freopen("asm_game.out", "w", stdout);
	int i,j;
	int u,v;
	cin >> n >> m;
	for(i = 1; i <= m; i++)
	{
		cin >> u >> v;
		ns[u].to.push_back(v);
		ns[u].degree++;
		ns[v].to.push_back(u);
		ns[v].degree++;
	}
	solve();
	cout << r << endl;
	return 0;
}