ZJNU 1538 - YN!ngC的取子游戏--高级

Nim博弈

因为移动到第0阶会消失

所以可以得到从最后一个人操作必定是把第1阶所有子全部移动到第0阶

递推可得,最后一个能把奇数阶的子移动到偶数阶上的人将会必胜

所以这个必胜条件就是奇数阶上的子全部为0

拿奇数阶进行Nim博弈即可

#include<stdio.h>
int main(){
    int n,i,a,s=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        scanf("%d",&a);
        if(i%2==1)
            s^=a;
    }
    puts(s?"YN!ngC":"Albert");
    
    return 0;
}

 

posted @ 2020-01-27 15:38  StelaYuri  阅读(126)  评论(0编辑  收藏  举报