zoukankan      html  css  js  c++  java
  • poj2484--A Funny Game

     题目大意:

      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
  • 相关阅读:
    java当前时间
    @Repository、@Service、@Controller 和 @Component
    spring mvc controller间跳转 重定向 传参
    MVC思想
    AJAX
    MySQL优化大总结
    MySQL数据库优化
    java JDBM2 的几个简单实例
    集群环境下如何防止定时任务重复执行?
    Java应用集群下的定时任务处理方案(mysql)
  • 原文地址:https://www.cnblogs.com/Beckinsale/p/7406064.html
Copyright © 2011-2022 走看看