UVA 11892 - ENimEN
题意:给定n堆石头,两人轮流取,每次只能取1堆的1到多个,如果上一个人取了一堆没取完,那么下一个人必须继续取这堆,取到最后一个石头的赢,问谁赢
思路:简单推理一下,后手只可能在堆数偶数并且都是1的情况下才可能赢
代码:
#include <stdio.h>
#include <string.h>
const int N = 20005;
int t, n, a[N];
bool judge() {
if (n % 2) return false;
for (int i = 0; i < n; i++)
if (a[i] != 1) return false;
return true;
}
int main() {
scanf("%d", &t);
while (t--) {
scanf("%d", &n);
for (int i = 0; i < n; i++)
scanf("%d", &a[i]);
if (judge()) printf("piloop\n");
else printf("poopi\n");
}
return 0;
}