[Gym - 101981A] Adrien and Austin (博弈|思惟)

題意:spa

有N堆石頭,最多拿k個,Adrien先拿,Austin後拿,最後拿完的人獲勝code

又被一道很簡單的博弈題(思惟題)卡了半天....blog

思路:io

首先k=1的時候,則獲勝與堆數奇偶相關。
k!=1的時候,因爲Adrien先拿,因此他能夠取中間部分把堆分紅兩部分。
這樣只要對手拿什麼,他在另外一個區間進行相同操做便可(對稱操做),這樣他就能保證本身可以最後拿完
注意還要特判n==0的狀況,這時候Austin必贏。class

#include <cstdio>
using namespace std;
int main(){
    int n,k;
    scanf("%d%d",&n,&k);
    if(n==0) puts("Austin");
    else if(k>1) puts("Adrien");
    else {
        if(n&1) puts("Adrien");
        else puts("Austin");
    }

}
相關文章
相關標籤/搜索