zoukankan      html  css  js  c++  java
  • 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.
    ");  
                continue;  
            }  
            if(num>9&&num<=18){
                printf("Ollie wins.
    ");  
                continue;
            }  
        }  
        return 0;  
    }  
  • 相关阅读:
    A1052. Linked List Sorting (25)
    A1032. Sharing (25)
    A1022. Digital Library (30)
    A1071. Speech Patterns (25)
    A1054. The Dominant Color (20)
    A1060. Are They Equal (25)
    A1063. Set Similarity (25)
    电子码表
    矩阵键盘
    对象追踪、临时对象追踪、绝对坐标与相对坐标
  • 原文地址:https://www.cnblogs.com/thmyl/p/8137845.html
Copyright © 2011-2022 走看看