zoukankan      html  css  js  c++  java
  • HDU 2516 取石子游戏(FIB博弈)

    取石子游戏

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 1911    Accepted Submission(s): 1094


    Problem Description
    1堆石子有n个,两人轮流取.先取者第1次可以取任意多个,但不能全部取完.以后每次取的石子数不能超过上次取子数的2倍。取完者胜.先取者负输出"Second win".先取者胜输出"First win".
     
    Input
    输入有多组.每组第1行是2<=n<2^31. n=0退出.
     
    Output
    先取者负输出"Second win". 先取者胜输出"First win". 
    参看Sample Output.
     
    Sample Input
    2 13 10000 0
     
    Sample Output
    Second win Second win First win
     
    Source
     
    Recommend
    lcy

    模型介绍见世界冠军的博客:http://blog.csdn.net/acm_cxlove/article/details/7835016

    #include <stdio.h>
    #include <string.h>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    int f[60];
    int main()
    {
        int n;
        f[0] = 1;
        f[1] = 1;
        for(int i = 2;i < 60;i++)
            f[i] = f[i-1]+f[i-2];
        while(scanf("%d",&n) == 1 && n)
        {
            bool flag = false;
            for(int i = 0;i <60;i++)
                if(n == f[i])
                {
                    flag = true;
                    break;
                }
            if(flag)printf("Second win
    ");
            else printf("First win
    ");
        }
        return 0;
    }
  • 相关阅读:
    JQuery_1
    CSS_1
    CSS_3
    CSS_4
    2020.10.19小记
    CSS_2
    IT茧
    亲爱的小C
    四五点钟的太阳
    有聊
  • 原文地址:https://www.cnblogs.com/kuangbin/p/3205070.html
Copyright © 2011-2022 走看看