zoukankan      html  css  js  c++  java
  • poj 2484 A Funny Game

    题意:

    n枚硬币排成一圈,Alice和Bob轮流从其中取一枚或者两枚连续的硬币。

    硬币取走之后留下空位,相隔空位的硬币不算连续的。

    Alice先取,如果一个人取完之后没有硬币,那么这个人获胜。

    思路:

    当n <= 2,那么肯定是Alice获胜;

    考虑,如果剩下偶数段石子,那么当Alice取了之后,Bob跟着Alice一样的取法,那么最后总是Bob取完;

    所以,只要Alice开始取之后,Bob再从这条链的中间按照n - 1或者n - 2的奇偶性取1个或者两个,那么就可以剩下偶数条链,然后Bob就一定获胜了。

    代码:

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <algorithm>
     4 using namespace std;
     5 
     6 int main()
     7 {
     8     int n;
     9     while (~scanf("%d",&n) && n)
    10     {
    11         if (n <= 2) puts("Alice");
    12         else puts("Bob");
    13     }
    14     return 0;
    15 }
  • 相关阅读:
    BM求递推式模板
    主席树浅谈
    DSU on Tree浅谈
    树链剖分浅谈
    省选模拟八 题解
    提答题 总结
    交互题 总结
    省选模拟七 题解
    省选模拟六 题解
    省选模拟五 题解
  • 原文地址:https://www.cnblogs.com/kickit/p/9104374.html
Copyright © 2011-2022 走看看