题意:
一颗树,然后两个操作,一是删除一条边,二是移除不与根相连的部分。
思路:
树上博弈的基础题目。
code:
#include <bits/stdc++.h>
using namespace std;const int N=1e5+5;
std::vector<int> v[N];
int dfs(int u,int p){int ans=0;for (int i=0;i<v[u].size();i++){int k=v[u][i];if (k!=p){ans^=(dfs(k,u)+1);}}return ans;
}
int main(){int T,n;scanf("%d",&T);while (T--){scanf("%d",&n);for (int i=0;i<=n;i++) v[i].clear();for (int i=1;i<n;i++){int x,y;scanf("%d%d",&x,&y);v[x].push_back(y);v[y].push_back(x);}if (dfs(1,-1)) puts("Alice");else puts("Bob");}
}