0
点赞
收藏
分享

微信扫一扫

HDU 4994 Revenge of Nim(简单博弈)

IT影子 2023-04-21 阅读 31


Revenge of Nim


Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 420    Accepted Submission(s): 214



Problem Description


Nim is a mathematical game of strategy in which two players take turns removing objects from distinct heaps. On each turn, a player must remove at least one object, and may remove any number of objects provided they all come from the same heap.
---Wikipedia

Today, Nim takes revenge on you. The rule of the game has changed a little: the player must remove the objects from the current head(first) heap. Only the current head heap is empty can the player start to remove from the new head heap. As usual, the player who takes the last object wins.


 



Input


The first line contains a single integer T, indicating the number of test cases. 

Each test case begins with an integer N, indicating the number of heaps. Then N integer Ai follows, indicating the number of each heap successively, and the player must take objects in this order, from the first to the last.

[Technical Specification]
1. 1 <= T <= 100
2. 1 <= N <= 1 000
3. 1 <= Ai <= 1 000 000 000


 



Output


For each test case, output “Yes” if the first player can always win, otherwise “No”.


 



Sample Input


2 1 2 2 1 1


 



Sample Output


Yes No


 



Source


BestCoder Round #9


 


#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

using namespace std;

int main()
{
    int n,m;
    int flag;
    int cnt;
    int T;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        flag = 0;
        cnt = 0;
        for(int i=0;i<n;i++)
        {
            scanf("%d",&m);
            if(flag == 0 && m == 1)
            {
                cnt++;
            }
            else if(m!=1)
            {
                flag = 1;
            }
        }
        if(cnt%2 == 0)
        {
            if(flag == 1)
            {
                printf("Yes\n");
            }
            else
            {
                printf("No\n");
            }
        }
        else
        {
            if(flag == 1)
            {
                printf("No\n");
            }
            else
            {
                printf("Yes\n");
            }
        }
    }
    return 0;
}


[ Copy to Clipboard ]     [ Save to File]



举报

相关推荐

0 条评论