POJ 1740 A New Stone Game(博弈)

 

题目大意

 

Alice 和 Bob 在玩一个新的取石子游戏:桌面上有 n(1n10) 堆石子,每堆石子个数不超过 100。游戏的每一回合,选手任意选一堆石子,取走至少一个石子,然后可以将当前堆中剩余的石子选取任意多个扔进一个有石子的堆中

给定一个局面,Alice 先走,问她能否获胜

 

做法分析

 

在纸上画画,不难猜出一个结论:若石子的个数两两成对,Alice 必败,否则 Alice 必胜

 

参考代码

 

POJ 1740 A New Stone Game(博弈)
 1 #include <iostream>

 2 #include <cstring>

 3 #include <cstdio>

 4 

 5 using namespace std;

 6 

 7 int n, A[200];

 8 

 9 int main()

10 {

11     while(scanf("%d", &n), n!=0)

12     {

13         memset(A, 0, sizeof A);

14         for(int i=0, a; i<n; i++)

15         {

16             scanf("%d", &a);

17             A[a]++;

18         }

19         int ans=0;

20         for(int i=0; i<200 && !ans; i++) if(A[i]&1) ans=1;

21         printf("%d\n", ans);

22     }

23     return 0;

24 }
POJ 1740

 

题目链接 & AC通道

 

POJ 1740 A New Stone Game

 

 

 

你可能感兴趣的:(game)