`
阿尔萨斯
  • 浏览: 4167676 次
社区版块
存档分类
最新评论

hdu 4994 Revenge of Nim(博弈)

 
阅读更多

题目链接:hdu 4994 Revenge of Nim

题目大意:有n堆石子,每次可以从开头的那堆石子中取走若干个石子,两人轮流取,取走最后一个石子的人获胜。

解题思路:考虑开头连续1的个数,不包括最后一堆。

#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;
const int maxn = 1005;

int n, arr[maxn];

int main () {
    int cas;
    scanf("%d", &cas);
    while (cas--) {
        scanf("%d", &n);

        for (int i = 1; i <= n; i++)
            scanf("%d", &arr[i]);
        int ret = 0;
        for (int i = 1; i < n; i++) {
            if (arr[i] != 1)
                break;
            else
                ret++;
        }
        printf("%s\n", ret&1 ? "No" : "Yes");
    }
    return 0;
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics