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

poj 2505 A multiplication game(博弈)

时间:2015-06-04 09:58:23      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

还的确是一个稍有难度博弈的问题(这个可不属于博弈中的任何一个):

题意:游戏规则为:两个人在2-9选数选出之后与p相乘,此时p=p*(2...9);当p>=n时这一方获胜。。

分析:


如果输入是 2 ~ 9 ,(2~9)因为Stan 是先手,所以Stan 必胜
如果输入是 10~18 ,(9+1~9*2)因为Ollie 是后手,不管第一次Stan 乘的是什么,Stan肯定在 2 ~ 9 之间,如果Stan乘以 2 ,那么Ollie就乘以 9 ,就到18了,如果Stan乘以 9 ,那么Ollie乘以大于1的数都都能超过 10 ~ 18 中的任何一个数。Ollie 必胜
如果输入是 19 ~ 162,(9*2+1~9*2*9)那么这个范围是 Stan 的必胜态
如果输入是 163 ~ 324 ,(9*2*9+1~9*2*9*2)这是又是Ollie的必胜态

。。。。。。

不是很懂也不想思考,感觉事太多又做不完,又不想做

#include<cstdio>
using namespace std;
__int64 p,n,count1;
int main()
{
    while(scanf("%I64d",&n)!=EOF){
        count1=0;
        p=1;
        while(true){
            if(p>=n) break;
            count1++;
            if(count1&1) p*=9;
            else p*=2;
        }
        printf("%s\n",count1&1?"Stan wins.":"Ollie wins.");
    }
    return 0;
}


poj 2505 A multiplication game(博弈)

标签:

原文地址:http://blog.csdn.net/a197p/article/details/46351757

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