1,2,3,4,5都可以,但6不行
那么我们就可以假定6*n都是必败,6*n+k都是必胜
我们用数学归纳法证明下:
由于6=2*3所以6*n一定不是p^n
先暴力算出1~5都必胜,6必败
——对于是6*n的情况,第一次拿r(=p^n),剩下6*n-r=6*n1+k,k=1~5,那么对手拿k(=p^n'')又转移到6*n问题所以最后一次必定是对手拿,自己必败,对手必胜
——对于6*n+k的情况,自己只要和6*n的对手那样每次拿余数k即可
#include <iostream> using namespace std; int n,t; int main(int argc, char** argv) { cin>>t; for(int i=0;i<t;i++){ cin>>n; if(n%6) puts("October wins!"); else puts("Roy wins!"); } return 0; }