码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-01-27 17:40:15      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:div   个人   int   clu   消失   奇数   include   操作   nim博弈   

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 }

 

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

标签:div   个人   int   clu   消失   奇数   include   操作   nim博弈   

原文地址:https://www.cnblogs.com/stelayuri/p/12236162.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!