hdu 1517 A Multiplication Game 博弈论

思路:求必胜区间和必败区间!

1-9 先手胜

10-2*9后手胜

19-2*9*9先手胜

163-2*2*9*9后手胜

……

易知右区间按9,2交替出现的,所以每次除以18,直到小于18时就可以直接判断了。

代码如下:

 

 1 #include<cstdio>

 2 int main()

 3 {

 4     double n;

 5     while(scanf("%lf",&n)!=EOF){

 6         while(n>18) n/=18;

 7         if(n<=9) puts("Stan wins.");

 8         else puts("Ollie wins.");

 9     }

10     return 0;

11 }
View Code

 

 

 

你可能感兴趣的:(game)