hdu 3094——A tree game

来源:互联网 发布:刘飞儿faye知乎 编辑:程序博客网 时间:2024/05/29 19:39

题意:

一颗树,然后两个操作,一是删除一条边,二是移除不与根相连的部分。

思路:

树上博弈的基础题目。

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");    }}
0 0
原创粉丝点击