hdu 2188悼念512汶川大地震遇难同胞——选拔志愿者(博弈)
简单博弈就那样,懂SG函数就成,最近做的博弈都千篇一律。。。
#include<cstdio> #include<cstring> #define N 11110 int sg[N],s[N],m,n; bool h[N]; void ssgg() { int i,j; sg[0]=0; for(i=1;i<N;i++) { memset(h,0,sizeof(h)); for(j=1;j<=n;j++) { if(i-j>=0) { h[sg[i-j]]=1; } } for(j=0;j<N;j++) { if(h[j]==0) { sg[i]=j; break; } } } } int main() { int num; scanf("%d",&num); while(num--) {scanf("%d%d",&m,&n); ssgg(); if(sg[m]) { printf("Grass\n"); } else printf("Rabbit\n"); } return 0; }
The article write by nealgavin