poj 2505 A multiplication game

Posted Soda

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poj 2505 A multiplication game相关的知识,希望对你有一定的参考价值。

A multiplication game

 POJ - 2505 

题目大意:两个人轮流玩游戏,Stan先手,数字 p从1开始,Stan乘以一个2-9的数,然后Ollie再乘以一个2-9的数,直到谁先将p乘到p>=n时那个人就赢了,而且轮到某人时,某人必须乘以2-9的一个数。

/*
    博弈,找规律,首先我们容易得到在
    [2,9]这个区间,是Stan必胜
    [10,18]这个区间,是Ollie必胜
    那么下个区间左边肯定是[18+1,?],是Stan必胜
    区间闭应该填一个什么数呢,因为18是一个必败点,所以轮到Stan开始,那么他可以乘以一个9,即18*9之内,Stan都必胜
    我们可以将18看成9*2,也就是说Stan越想接近N,Ollie肯定越不想他达到N
    所以下个区间为[18+1,9*2*9],其实找规律也能找出一个这样的规律
    [9*2*9+1,9*2*9*2],Ollie必胜
    [9*2*9*2+1,9*2*9*2*9],Stan必胜
*/
#include<cstdio>  
#include<cstring>  
#include<iostream>  
#include<algorithm>  
const int MAXN=10000;  
using namespace std;  
int main(){  
    long long num;  
    while(~scanf("%lld",&num)){
        while(num>18)num=(num-1)/18+1;  
        if(num<=9){  
            printf("Stan wins.\n");  
            continue;  
        }  
        if(num>9&&num<=18){
            printf("Ollie wins.\n");  
            continue;
        }  
    }  
    return 0;  
}  

 

以上是关于poj 2505 A multiplication game的主要内容,如果未能解决你的问题,请参考以下文章

POJ 2505 A multiplication game

POJ2505 A multiplication game[博弈论]

POJ 2505 A multiplication game(找规律博弈/贪心)

POJ2505 A multiplication game(博弈)

[poj2505]A multiplication game_博弈论

「POJ2505」A multiplication game [博弈论]