poj 2960
来源:互联网 发布:统计学书籍 知乎 编辑:程序博客网 时间:2024/05/21 23:33
#include<stdio.h>#include<string.h>int n;int Sg[10005];int a[110];int f(int x){ if(Sg[x]!=-1) return Sg[x]; int e=0; bool vis[110]; //写成全局的变量会出错 memset(vis,0,sizeof(vis)); for(int i=0;i<n;i++) { if(x-a[i]>=0) { f(x-a[i]); vis[Sg[x-a[i]]]=1; } } for(int i=0;i<110;i++) if(!vis[i]) { e=i; break; } return Sg[x]=e; }int main(){ int t,v,m,x; while(scanf("%d",&n)!=EOF) { if(n==0) break; for(int i=0;i<n;i++) scanf("%d",&a[i]); scanf("%d",&t); //SG[1]=0; memset(Sg,-1,sizeof(Sg)); Sg[0]=0; while(t--) { v=0; scanf("%d",&m); while(m--) { scanf("%d",&x); v^=f(x); } if(!v) printf("L"); else printf("W"); } printf("\n"); } return 0; }