S-Nim

系统 1865 0

http://acm.hdu.edu.cn/showproblem.php?pid=1536

SG经典题,不多说

 

    // File Name: hdu1536.cpp

// Author: bo_jwolf

// Created Time: 2013年09月30日 星期一 18:23:53



#include<vector>

#include<list>

#include<map>

#include<set>

#include<deque>

#include<stack>

#include<bitset>

#include<algorithm>

#include<functional>

#include<numeric>

#include<utility>

#include<sstream>

#include<iostream>

#include<iomanip>

#include<cstdio>

#include<cmath>

#include<cstdlib>

#include<cstring>

#include<ctime>



using namespace std;



const int N = 105 ;

const int MAXN = 10100;

bool vis[MAXN];

int sg[MAXN];

int si[ MAXN ] , n ;

int Getsg( int N )

{//printf( " n = %dn",n );

    int hash[105] = {0};

    for( int i = 0; i < n && si[i] <= N; ++i )

    {

         if( sg[N-si[i]] == -1 )

             sg[N-si[i]] = Getsg( N - si[i] );

         hash[sg[N-si[i]]] = 1;

     }

     for( int i = 0; ; i++ )

          if( !hash[i] )

              return i;

}



int main(){

    int temp , ans , m  ; 

    while( scanf( "%d" , &n ) != EOF && n ){

        for( int i = 0 ; i < n ; ++i ){

            scanf( "%d" , &si[ i ] ) ;

        }

        memset( sg , -1 , sizeof( sg ) ) ;

        sort( si , si + n ) ;

        int Case ;

        scanf( "%d" , &Case ) ;

        while( Case-- ){

            scanf( "%d" , &m ) ;

            ans = 0;

            for( int i = 0 ; i < m ; ++i ){

                scanf( "%d" , &temp ) ;

                ans ^= Getsg( temp ) ;

            }

            if( ans ==  0 ) cout << "L"  ;

            else cout << "W"  ;

        }

        cout << endl ;

    }

return 0;

}
  


 

 

S-Nim


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论