一起做过类似的,如果是以前的我的话,肯定会从0状态开始,打个表搞起。
现在想到了另外一种方法,把箱子看成装满钱的,每人从里面拿钱,最多拿m元,拿到最后一张的获胜。
#include<iostream> using namespace std; int main() { int T; scanf( "%d",&T ); while( T-- ) { int n,m; scanf( "%d %d",&n,&m ); if( n%(m+1) ) printf( "Grass\n" ); else printf( "Rabbit\n" ); } return 0; }
#include<iostream> using namespace std; int main() { int N,M; while( scanf( "%d %d",&M,&N )!=EOF ) { if( M%(N+1)==0 ) printf( "none\n" ); else { bool f=true; for( int i=1;i<=N;i++ ) { if( (M-i)%(N+1)==0|| i>=M ) { if( f ) { f=false; printf( "%d",i ); } else printf( " %d",i ); } } printf( "\n" ); } } return 0; }