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

 

 

 

posted @ 2013-08-21 19:12  _随心所欲_  阅读(169)  评论(0编辑  收藏  举报