zoukankan      html  css  js  c++  java
  • hdu 1517 K(2~9)倍博弈

    http://acm.hdu.edu.cn/showproblem.php?pid=1517

    以前做过不过不认真,现在又忘了。

    出处:http://qianmacao.blog.163.com/blog/static/203397180201223174133470/

    博弈问题
    题意:两人玩游戏,从1开始,轮流对数进行累乘,直到超过一个指定的数。
    算法分析:

    ①、如果输入是29,因为Stan是先手,所以Stan必胜。

    ②、如果输入是1018(9*2),因为Ollie是后手,不管第一次Stan乘的是多少,Stan肯定在29之间,如果Stan乘以2,那么Ollie就乘以9,那么Ollie乘以大于1的数都能超过1018中的任何一个数,Ollie必胜。

    ③、如果输入的是19162(9*2*9),那么这个范围Stan必胜。

    ④、如果输入是163324(2*9*2*9),这个是Ollie的必胜范围。

    …………

    可以发现必胜态是对称的。

    如果“我方”首先给出了一个在N不断除18后的得到不足18的数M,“我方”就可以胜利,然而双方都很聪明,所以这样胜负就决定与N了,如果N不断除18后的得到不足18的数M,如果1<M<=9则先手胜利,即Stan wins.如果9<M<=18则后手胜利。

    View Code
    // I'm lanjiangzhou
    //C
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <ctype.h>
    #include <math.h>
    #include <time.h>
    //C++
    #include <iostream>
    #include <algorithm>
    #include <cstdio>
    #include <cstdlib>
    #include <cmath>
    #include <cstring>
    #include <cctype>
    #include <stack>
    #include <string>
    #include <list>
    #include <queue>
    #include <map>
    #include <vector>
    #include <deque>
    #include <set>
    using namespace std;
    
    //*************************OUTPUT*************************
    #ifdef WIN32
    #define INT64 "%I64d"
    #define UINT64 "%I64u"
    #else
    #define INT64 "%lld"
    #define UINT64 "%llu"
    #endif
    
    //**************************CONSTANT***********************
    #define INF 0x3f3f3f3f
    
    // aply for the memory of the stack
    //#pragma comment (linker, "/STACK:1024000000,1024000000")
    //end
    
    
    int main(){
        double n;
        while(scanf("%lf",&n)!=EOF){
            while(n>18){
                n=n/18;
            }
            if(n<=9) printf("Stan wins.\n");
            else printf("Ollie wins.\n");
        }
        return 0;
    }
  • 相关阅读:
    多线程
    IO
    Collections工具类
    File类
    Map
    List与Set接口
    如何把数学作为一种工具
    包装类
    异常
    内部类
  • 原文地址:https://www.cnblogs.com/lanjiangzhou/p/3022567.html
Copyright © 2011-2022 走看看