luogu P4018 Roy&October之取石子(博弈论)

题意

题解

如果n是6的倍数,先手必败,否则先手必胜。

因为6*x一定不是pk

所以取得话会变成6*y+a的形式a=1,2,3,4,5;

然后a一定为质数。我们把a取完就又成为了6*x的形式。

又因为总数不断减少,所以6*x的局面是必败局面。

做完这题让我想起了初中时就被这种问题被人坑过。

然后博弈论可以先把SG的表打出来。

 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 #include<cstring>
 5 #include<algorithm>
 6 using namespace std;
 7 int t,n;
 8 int main(){
 9     scanf("%d",&t);
10     while(t--){
11         scanf("%d",&n);
12         if(n%6==0)printf("Roy wins!\n");
13         else printf("October wins!\n");
14     }
15     return 0;
16 }

猜你喜欢

转载自www.cnblogs.com/Xu-daxia/p/9566762.html