首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

hdu2999 Stone Game, Why are you always there?sg 一排石头子儿分成若干堆

2012-09-14 
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;}

热点排行