zoj 3882 博弈

题意:有[1,n]的n个数字,A和B两人每次选一个数字,并把这个数字和这个数字的所有约数删去,没有数字可选的人败,问先手必胜还是必败。

思路:反推,假设先手必败,即先手无论取哪个数字,后手都可以选到一个数字x使得先手必败,那么假设先手取1,后手然后取x,那么先手只要第一次取x就可以胜,所以先手必胜。

 1 #include <cstdio>
 2 using namespace std;
 3 
 4 int main ()
 5 {
 6     int n;
 7     while ( scanf("%d", &n) != EOF )
 8     {
 9         if ( n == 0 ) puts("fail");
10         else puts("win");
11     }
12     return 0;
13 }
原文地址:https://www.cnblogs.com/huoxiayu/p/4682147.html