hdu2999 Stone Game, Why are you always there?sg 一排石头子儿分成若干堆
hdu2999Stone Game, Why are you always there?---sg一排石子分成若干堆Stone Game, Why are you always t
hdu2999 Stone Game, Why are you always there?---sg 一排石子分成若干堆
Stone Game, Why are you always there?Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 142 Accepted Submission(s): 53
Problem DescriptionInputOutputSample InputSample OutputSourceRecommend#include<iostream>#include<cstdlib>#include<stdio.h>#include<memory.h>#include<algorithm>using namespace std;int fibo[110];int sg[1010];int num[1010],n;int solve(int x){ if(sg[x]>=0) return sg[x]; memset(num,-1,sizeof(num)); for(int i=0;i<n;i++) for(int j=x-fibo[i];j>=0;j--) { num[solve(j)^solve(x-fibo[i]-j)]=1; } for(int i=0;;i++) if(num[i]==-1) return sg[x]=i;}int main(){ int m,k; while(scanf("%d",&n)!=EOF) { for(int i=0;i<n;i++)scanf("%d",&fibo[i]); sort(fibo,fibo+n); scanf("%d",&m); memset(sg,-1,sizeof(sg)); sg[0]=0; while(m--) { scanf("%d",&k); if(solve(k)) puts("1"); else puts("2"); } } return 0;}