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 }

 

你可能感兴趣的:(ZOJ)