题目链接:https://vjudge.net/problem/UVA-11892

UVA11892 ENimEN —— 博弈-LMLPHP

UVA11892 ENimEN —— 博弈-LMLPHP

题意:

两人玩游戏,有n堆石子,每堆有ai块石子,两人轮流取,要求一次只能选择一堆石子取任意块。最后取完的获胜。

题解:

由于一堆石子可以取任意块,所以得出一个结论:当存在一堆石子数量大于1时,先手必胜。因为先手可以通过这些石子堆来调整自己的必胜状态(或者说取消对手的必胜状态)。但如果每堆石子只有一块,那就每次只能取一块,那结果显而易见了。

代码如下:

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <string>
#include <set>
using namespace std;
typedef long long LL;
const int INF = 2e9;
const LL LNF = 9e18;
const int MOD = 1e9+;
const int MAXN = +; int main()
{
int T, n;
scanf("%d", &T);
while(T--)
{
bool win = false;
scanf("%d", &n);
for(int i = ; i<=n; i++)
{
int a;
scanf("%d", &a);
if(a>) win = true;
} if(win || n%) puts("poopi");
else puts("piloop");
}
}
05-19 21:24