HDU 1517 A Multiplication Game
这个题要找一下规律:
我们假设1为必败点P,则2~9为必胜点,那么10~18又是必败点,19~162又为必胜点,163~324为必败点;
必胜点为m*18^n(m<=9),必败点为m*18^n(m>9);
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 #include<algorithm> 5 #include<cmath> 6 #include<queue> 7 #include<set> 8 #include<map> 9 #include<vector> 10 using namespace std; 11 12 int main( ) 13 { 14 double n; 15 while( scanf( "%lf",&n )==1 ) 16 { 17 while( n > 18 ) n/=18; 18 // printf( "%lld ",n ); 19 if( n <= 9 ) puts( "Stan wins." ); 20 else puts( "Ollie wins." ); 21 } 22 //system( "pause" ); 23 return 0; 24 }