比赛 Asm.Def战记之圣地亚哥“杯2015 评测结果 WWWWWWWWWW
题目名称 Asm.Def的游戏 最终得分 0
用户昵称 KZNS 运行时间 0.086 s
代码语言 C++ 内存使用 2.30 MiB
提交时间 2015-10-31 08:58:54
显示代码纯文本
// KZ's
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
bool flg[100003]={0};
vector <int> mp[100003];
class pi {
public:
	int v,d;
}mpp[100003];
bool cp(pi aa,pi bb) {
	return aa.d<bb.d;
}
int main() {
	ifstream fin ("asm_game.in");
	ofstream fout ("asm_game.out");
	int n,m;
	fin>>n>>m;
	int a,b;
	fin>>a>>b;
	mp[a].push_back(b);
	mp[b].push_back(a);
	unsigned int ed=n;
	for (int i=1;i<n;i++) {
		fin>>a>>b;
		mp[a].push_back(b);
		mp[b].push_back(a);
		ed^=i;
	}
	for (int i=1;i<=n;i++) {
		mpp[i].v=i;
		mpp[i].d=mp[i].size();
	}
	sort(mpp+1,mpp+n+1,cp);
	int dlt=0;
	bool fff=1;
	while (fff)
		for (int i=1;i<=n;i++) {
			fff=0;
			pi &piu=mpp[i];
			if (piu.d<0)
				continue;
			if (piu.d<3) {
				flg[piu.v]=true;
				piu.d=-1;
				dlt++;
				ed^=i;
			}
			else {
				if (piu.d-dlt<3) {
					for (int j=0;j<piu.d;j++)
						if (flg[mp[piu.v][j]]) {
							piu.d--;
							mp[piu.v][j]=0;
						}
					if(piu.d<3) {
						flg[piu.v]=true;
						piu.d=-1;
						dlt++;
						ed^=i;
					}
				}
			}
		}
	fout<<ed<<endl;
	return 0;
}
// UBWH