HDU 1536 S-Nim 求SG函数

2014-11-24 12:32:35 · 作者: · 浏览: 0


题意:给你n个数Nnum[ i ],表示每次只能取Nnum[ i ]个数。

m个问题:每次给你 l 堆石子,每堆有num个石子,问先手是否会赢。


Sample Input
2 2 5
3
2 5 12
3 2 4 7
4 2 3 7 12
5 1 2 3 4 5
3
2 5 12
3 2 4 7
4 2 3 7 12
0

Sample Output
LWW
WWL


经典Nim游戏,找出SG就可以了。

至于如何找SG,这里有详细的 点我

#include
  
   
#include
   
     #include
    
      #include
     
       #include
       #include
       
         #include
        
          #include 
         
           #include 
          
            #include
           
             #include
            
              using namespace std; #define INF 1e8 #define eps 1e-8 #define LL long long #define maxn 10005 #define PI acos(-1.0) int n,Nnum[110]; int sg[maxn]; void SG() { bool vis[maxn]; for(int j=1;j
             
              =0) vis[sg[j-Nnum[i]]]=true; } for(int i=0;i