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

poj 2505 A multiplication game

时间:2017-12-28 23:16:19      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:pos   .net   题目   string   print   algorithm   net   tip   can   

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

标签:pos   .net   题目   string   print   algorithm   net   tip   can   

原文地址:https://www.cnblogs.com/thmyl/p/8137845.html

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