• Gameia


    Alice and Bob are playing a game called 'Gameia ? Gameia !'. The game goes like this : 
    0. There is a tree with all node unpainted initial. 
    1. Because Bob is the VIP player, so Bob has K chances to make a small change on the tree any time during the game if he wants, whether before or after Alice's action. These chances can be used together or separate, changes will happen in a flash. each change is defined as cut an edge on the tree. 
    2. Then the game starts, Alice and Bob take turns to paint an unpainted node, Alice go first, and then Bob. 
    3. In Alice's move, she can paint an unpainted node into white color. 
    4. In Bob's move, he can paint an unpainted node into black color, and what's more, all the other nodes which connects with the node directly will be painted or repainted into black color too, even if they are white color before. 
    5. When anybody can't make a move, the game stop, with all nodes painted of course. If they can find a node with white color, Alice win the game, otherwise Bob. 
    Given the tree initial, who will win the game if both players play optimally?

    InputThe first line of the input gives the number of test cases T; T test cases follow. 
    Each case begins with one line with two integers N and K : the size of the tree and the max small changes that Bob can make. 
    The next line gives the information of the tree, nodes are marked from 1 to N, node 1 is the root, so the line contains N-1 numbers, the i-th of them give the farther node of the node i+1. 

    Limits 
    T100T≤100 
    1N5001≤N≤500 
    0K5000≤K≤500 
    1Pii1≤Pi≤i
    OutputFor each test case output one line denotes the answer. 
    If Alice can win, output "Alice" , otherwise "Bob".Sample Input

    2
    2 1
    1
    3 1
    1 2

    Sample Output

    Bob
    Alice
    这是一道博弈加上图论的题目,其中博弈的思想比较有意思。
    先给出官方题解:

    首先解释一下题意,题目说的是,树上不能有白点,否则Alice赢,即使这白点是被切开了,依旧是Alice赢。我只说关键的题意。
    接着就是特权的作用:切断之后,防止黑色染到相邻节点,避免节点被染之后自己无处落脚。

    题解看不懂的来这里,首先如果树的大小为3的话,alice必赢,因为可以染中间的点,然后无论bob是否能切断,alice都可以染白另一点。
    如果是奇数大小的话,Alice必赢,因为Alice可以每次染父节点,将数的大小减二,长此以往,树的大小必然为3,这样Alice必赢。
    如果bob能把树分成两个一组的点对,这样bob必赢,这句话里面隐藏了三条信息,首先数是偶数大小,第二bob拥有足够的特权数,即能大于等于n/2-1;
    还有就是某一的节点的叶子节点数,如果是奇数个叶子节点的话,bob是无法通过足够的特权将数分成两个一对的点对。
    你可以画一个杠铃,然后每个杠铃上再连接两个分开的点,这样就有两个三角型的形状连接在一起了,无论bob有多少特权,这图Alice必赢。虽然图的大小为偶数
    且bob特权数足够,但是这有奇数个叶子节点,带上它的父节点,bob跟不上alice的节奏,他必输。这也就是递归所有子节点,求它的数目的原因。
    这题大致就是这个思路了,没想明白的可以再仔细想想。既然做了ACM,那就放飞思想吧!
  • 相关阅读:
    360云盘、百度云、微云……为什么不出 OS X(Mac 端)应用呢?(用户少,开发成本高)(百度网盘Mac版2016.10.18横空出世)
    其实 Dropbox 的缺点也很明显,速度慢,空间小(我对国内的网盘的建议)
    为什么百度云、360云盘等都取消了同步盘功能?
    验证API
    操作系统进程压榨案例
    查询功能
    JavaScript 动画库和开发框架
    指针
    Attribute Routing
    自定义验证特性
  • 原文地址:https://www.cnblogs.com/xyqxyq/p/9451754.html
Copyright © 2020-2023  润新知