2018南京Gym - 101981A - Adrien and Austin 思维博弈

2018南京Gym - 101981A - Adrien and Austin 思维博弈_第1张图片

题意:两个人玩游戏,从石堆里面拿石头,石头是有序号标号的,一次必须要拿连续的石头,谁最后没有石头拿谁就会输。

思路:一开始没有认真读题,以为是巴什博弈,后来看到了consecutively是连续不断的,那么题目就简单了。 我们只需要特判两种情况,n=0和k=1。n=0先手必输,k=1的时候先手不具有优势,这时判断奇偶即可。其余情况先手可以将序列分成对半的,后手怎么取,先手就在另一头怎么取。这样先手始终有石子可以移动。

#include 

using namespace std;
const int MAX_N = 1e6 + 5;
string s[2]={"Adrien","Austin"};
int main()
{
    int n, K;
    cin >> n >> K;
    if (n == 0)
        cout << s[1] << endl;
    else if (K == 1 && n%2 == 0) {
        cout << s[1] << endl;
    }
    else {
        cout << s[0] << endl;
    }
    return 0;
}

你可能感兴趣的:(博弈)