题目:Binary Tree
题目链接:https://codeforces.ml/group/5yyKg9gx7m/contest/270506/problem/E
题目描述:
给出一个二叉树,A和B没次可以拿走一个完美二叉树。
谁拿走最后一点谁赢。
题目分析:
这跟树的结构没什么关系。
因为完美二叉树的点数为奇数,而奇数-奇数=偶数,偶数-奇数=奇数。所以当n为奇数时,A永远面对一个点数为奇数的树。而B面对的永远是点数为偶数的树。B拿不到最后的完美二叉树,必败。反之同理。
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
int main()
{
int t,n,x,y,m;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
m=n-1;
while(m--)
{
scanf("%d%d",&x,&y);
}
if(n%2) printf("Alice\n");
else printf("Bob\n");
}
return 0;
}