题目:http://acm.fzu.edu.cn/problem.php?pid=1534
/*
巴什博奕和尼姆博弈的综合。
这里分为最后拿胜利,最后拿失败,分别是nim 和 anti-nim。
SG(n) = n%3
*/
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <algorithm>
using namespace std;
const int maxn = 10005;
int p[maxn];
int main(){
int n;
while(~scanf("%d",&n)){
int cnt = 0;
for(int i = 0;i < n;i++){
scanf("%d",p+i);
if(p[i] > 1)cnt++;
p[i] %= 3;
}
int q,ans = 0;
scanf("%d",&q);
for(int i = 0;i < n;i++)
ans ^= p[i];
if(q){
if ((!cnt&&!ans) || (cnt&&ans))
printf("yes\n");
else
printf("no\n");
}
else{
if(ans)
printf("yes\n");
else
printf("no\n");
}
}
return 0;
}
本文深入探讨了巴什博奕和尼姆博弈的综合应用,通过实例代码展示了如何运用算法解决复杂博弈问题,着重分析了SG(n)=n%3在不同情境下的策略选择。
204

被折叠的 条评论
为什么被折叠?



