#include<stdio.h> #include<string.h> #include<math.h> #include<queue> #include<vector> #include<iostream> #include<string> #include<set> #include<map> #include<algorithm> using namespace std; #pragma comment(linker, "/STACK:1024000000,1024000000") #define nn 10010 #define LL long long #define ULL unsiged long long #define mod 0x7fffffff #define inf oxfffffffffff #define lson l,mid,rt<<1 #define rson mid+1,r,rt<<1|1 int n; int s[110]; int f[nn]; int mex(int v) { bool g[101]={0}; for(int i=0;i<n;i++) { int t=v-s[i]; if(t<0) break; if(f[t]==-1) f[t]=mex(t); g[f[t]]=1; } for(int i=0;i<101;i++) if(!g[i]) return i; } int main() { while(~scanf("%d",&n)&&n) { for(int i=0;i<n;i++) cin>>s[i]; sort(s,s+n); memset(f,-1,sizeof(f)); f[0]=0; int m; scanf("%d",&m); for(int i=0;i<m;i++) { int num; cin>>num; int ans=0,val; while(num--) { cin>>val; if(f[val]==-1) f[val]=mex(val); ans=ans^f[val]; } if(ans==0) cout<<"L"; else cout<<"W"; } cout<<endl; } return 0; }
赶脚好高端的样子!留个模板,有空再看吧!