Nim博弈
因为移动到第0阶会消失
所以可以得到从最后一个人操作必定是把第1阶所有子全部移动到第0阶
递推可得,最后一个能把奇数阶的子移动到偶数阶上的人将会必胜
所以这个必胜条件就是奇数阶上的子全部为0
拿奇数阶进行Nim博弈即可
1 #include<stdio.h> 2 int main(){ 3 int n,i,a,s=0; 4 scanf("%d",&n); 5 for(i=1;i<=n;i++){ 6 scanf("%d",&a); 7 if(i%2==1) 8 s^=a; 9 } 10 puts(s?"YN!ngC":"Albert"); 11 12 return 0; 13 }
原文地址:https://www.cnblogs.com/stelayuri/p/12236162.html
时间: 2024-10-11 18:42:34