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

poj2484--A Funny Game

时间:2017-08-21 19:36:11      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:pac   技术分享   alice   部分   name   splay   can   规则   ios   

 题目大意:

  Alice和Bob决定玩一个游戏。游戏的规则如下:现在有N个硬币(1<=n<=10^6),将它们摆成一个圈。操作:每次Alice或Bob从这圈硬币中,取一个或两个初始相邻的硬币,取最后一个硬币的人胜利。

  注意:1.当n>3的时候,假设Alice拿走了标号为2的硬币,那么标号1的硬币和标号为3的硬币是彼此不相邻的。2.Alice和Bob都是足够聪明的小朋友。

解法:

  后手必胜如果是N为偶数,后手可以跟着先手同步操作。相当于全部硬币分为相等的两部分,先手取几个,后手就取几个,这样总有后手必胜。

  如果N是奇数,先手拿一个的时候,后手就将其中心对称的两个拿掉。先手拿两个的时候,后手就将其中心对称的一个拿掉。进行以上二选一的操作后,游戏便又成了N为偶数的情况。

  综上所述,除了N=1或N=2时,总有后手Bob胜出。

技术分享
 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 int main()
 5 {
 6     int n;
 7     while(scanf("%d",&n)!=EOF)
 8     {
 9         if(n==0)break;
10         if(n==1||n==2)
11             cout<<"Alice"<<endl;
12         else
13             cout<<"Bob"<<endl;
14     }
15     return 0;
16 }
View Code

 

poj2484--A Funny Game

标签:pac   技术分享   alice   部分   name   splay   can   规则   ios   

原文地址:http://www.cnblogs.com/Beckinsale/p/7406064.html

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