题目链接:http://nyoj.top/problem/1370

  • 内存限制:128MB 时间限制:3000ms

题目描述

The Three Kingdoms period was a relatively famous period in the history of China. From the Battle of Chibi (AD 211) to the reunification of China in the Western Jin Dynasty(AD 280). During the period, Cao's Wei State, Liu's Shu State, and Sun's Wu Guo's Three Kingdoms stood together. Therefore, it was called the Three Kingdoms period.

In the last years of the Eastern Han Dynasty, Dong_ Z specialized in power , the coalition forces of the world's princes crusade against each other. Among them, Liu_B and Sun_Q, who are school students, also participated in the crusade.

In AD 215 , Liu_B and Sun_Q simultaneously attacked JingZhou and directly threatened Dong Z's city. There were N firepower points on the high wall, each fire point with different s trength Xi . Liu_B and Sun_Q looked at the high walls and the strong gates, they did not attack the city traightaway. They negotiate to attack firepower point alternately. Who breaks through the last firepower point, he will win the city.

Because of limited weaponry, weapons of each side can only attack one firepower at a time. But they can control whether completely destroy this firepower point or weaken the strength of firepower point.

Liu_B has a strong think-tank. After calculation, he finds out who will attack first , who will more likely win the city .

输入描述

The first line of the input contains one integer T, which is the number of  test cases (1<=T<=10).  Each test case specifies:
* Line 1: N ( 1 ≤ N ≤ 100 )
* Line 2: X1 X2… Xn ( 1 <= Xi<=1000    i=1…. n)

输出描述

For each test case ,  print  “Liu_B is sure to win.” Or  “Liu_B is not sure to win.” ,  suppose Liu_B first attacks.

样例输入

3
2
1 3
2
3 3
5
1 2 3 4 5

样例输出

Liu_B is sure to win.
Liu_B is not sure to win.
Liu_B is sure to win.

解题思路

题意:有n个东西,可以全部破坏或者只破坏一部分,最后破坏的人获胜。
思路:尼姆博弈。

#include <bits/stdc++.h>
using namespace std;
int main () {
    int t, n, a, ans;
    scanf("%d", &t);
    while (t--) {
        ans = 0;
        scanf("%d", &n);
        for (int i = 0; i < n; i++) {
            scanf("%d", &a);
            ans ^= a;
        }
        if (ans)
            printf("Liu_B is sure to win.\n");
        else printf("Liu_B is not sure to win.\n");
    }    
    return 0;
}