hdu 1536 S-Nim_求sg值模版

来源:互联网 发布:python爬虫可以赚钱吗 编辑:程序博客网 时间:2024/05/18 01:36

题意:给你很n堆石头,k代表你有k种拿法,然后给出没堆石头的数量,求胜负

直接套用模版

找了好久之前写的代码贴上来


#include<iostream>#include<algorithm>#include<cstring>using namespace std;int s[101],sg[100001],k;int mex(int m){int vis[101]={0};int i;for(i=0;i<k;i++){int v=m-s[i];if(v<0)break;if(sg[v]==-1)sg[v]=mex(v);vis[sg[v]]=1;}for(i=0;;i++)if(vis[i]==0)return i;}int main(){int i,t,n,m,ans;while(cin>>k,k){for(i=0;i<k;i++)scanf("%d",&s[i]);sort(s,s+k);memset(sg,-1,sizeof(sg));sg[0]=0;scanf("%d",&t);while(t--){scanf("%d",&n);ans=0;while(n--){scanf("%d",&m);if(sg[m]==-1)sg[m]=mex(m);ans^=sg[m];}if(ans)printf("W");elseprintf("L");}printf("\n");}return 0;}