福建工程学院第十四届ACM校赛G题题解

外传:编剧说了不玩游戏不行

题意:

有n个石堆,我每次只能从某一堆中取偶数个石子,你取奇数个,我先手,先不能操作的人输。问最后谁能赢。

思路:

这个题仔细想想,就发现,取奇数的人有巨大的优势,因为假设有一个奇数堆的,我只要一直取其他堆,直到剩下这一个奇数堆的时候我就赢了,因为取偶数的人无论如何都取不了这一个奇数堆的,然后我们发现,假设当前没有奇数堆,只要还剩下石子堆,我只要取1个就能变成奇数堆,然后我就必胜了,所以只有一种情况可能会输,那就是只有一堆石子且那一堆是偶数个,被对面先手一次性取完,不然奇数的怎么都会赢

代码实现

#include <iostream>

#include <cstring>

using namespace std;

typedef long long ll;

const int maxn = 1200;

int a[maxn];

int main(){

    int T;

    cin>>T;

    while(T--){

        int n;

        cin>>n;

        for(int i=1;i<=n;i++)

            cin>>a[i];

        if(n==1&&a[1]%2==0){

            puts("bugaoxing");

        }

        else {

            puts("meitounao");

        }

    }

    return 0;

}
原文地址:https://www.cnblogs.com/xseventh/p/10878243.html