第十一届ACM河南省赛 Attack City and Capture Territory(Nim博弈)

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41156122/article/details/80540973

提交地址点击打开链接

裸Nim博弈

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.

样例输入

复制
321 323 351 2 3 4 5

样例输出

复制
Liu_B is sure to win.
Liu_B is not sure to win.
Liu_B is sure to win.

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		int n;
		cin>>n;
		int ans = 0;
		int a;
		for(int i = 0;i<n;i++)
		{
			cin >>a;
			ans ^=a;
		}
		if(ans) cout<<"Liu_B is sure to win.\n";
		else cout<<"Liu_B is not sure to win.\n";
	}
}
/*
3
2
1 3
2
3 3
5
1 2 3 4 5
*/

展开阅读全文

没有更多推荐了,返回首页