zoukankan      html  css  js  c++  java
  • HDU 6105

    /*
    HDU 6105 - Gameia [ 非平等博弈 ]  |  2017 Multi-University Training Contest 6
    题意:
    	Bob 可以把一个点和周围所有点都染黑,还有 k 次割掉一条边的操作
    	Alice 可以把一个点染白
    	A先B后,问谁赢
    分析:
    	如果图中不存在两两匹配,则Bob输
    	每一次两两匹配都需要一次割边,除了最后一次
    	如果没能力割边,Bob输
    */
    #include <bits/stdc++.h>
    using namespace std;
    int t, n, k;
    vector<int> G[505];
    bool ans;
    int dfs(int x)
    {
        int s = 1;
        for (auto& y : G[x])
            s += dfs(y);
        if (s == 2) k--;
        if (s > 2) ans = 0;
        return s % 2;
    }
    int main()
    {
        scanf("%d", &t);
        while (t--)
        {
            scanf("%d%d", &n, &k);
            for (int i = 1; i <= n; i++) G[i].clear();
            for (int i = 2; i <= n; i++)
            {
                int x; scanf("%d", &x);
                G[x].push_back(i);
            }
            if (n&1) puts("Alice");
            else
            {
                ans = 1;
                dfs(1);
                if (!ans || k < -1) puts("Alice");
                else puts("Bob");
            }
        }
    }
    

      

  • 相关阅读:
    DataGridView
    View Designer
    错题集
    MetalKit_1
    倍道而行:选择排序
    ARKit_3_任意门
    ARKit__2_尺子项目
    关于scrollview的无限滚动效果实现
    tableview折叠动效
    NSURLSession的简单使用
  • 原文地址:https://www.cnblogs.com/nicetomeetu/p/7341699.html
Copyright © 2011-2022 走看看