AGC017D

经典结论:树的sg值等于子树sg值+1的异或和
\(sg_{fa} \oplus= sg_{son}(son\in fa)\)

#include<cstdio>
#include<vector>
using namespace std;
vector<int>e[100005];
int n;
int dfs(int x,int f){
	int res = 0;
	for(int i = 0;i < e[x].size();++i)
		if(e[x][i] != f) res ^= dfs(e[x][i],x) + 1;
	return res;
}
int main(){
	scanf("%d",&n);int u,v;
	for(int i = 1;i < n;++i){
		scanf("%d%d",&u,&v);
		e[u].push_back(v); e[v].push_back(u);
	}
	puts(dfs(1,0) ? "Alice" : "Bob");
}
posted @ 2020-10-09 15:10  INFP  阅读(128)  评论(0编辑  收藏  举报