hdu 1536 SG函数模板题 千万注意游戏的组合用SG函数值异或 是SG函数的值啊 (二)

2014-11-23 23:21:21 · 作者: · 浏览: 13
,&k)!=EOF) { if(!k) break; memset(SG,-1,sizeof(SG)); for(i=0;i
#include 
#include 
#include 
using namespace std;
const int K=101;
const int H=10001;//H是我们要打表打到的最大值
int k,m,l,h,s[K],sg[H],mex[K];///k是集合元素的个数 s[]是集合  mex大小大约和集合大小差不多
///注意s的排序
void sprague_grundy()
{
    int i,j;
    sg[0]=0;
    for (i=1;i
=s[j]){ mex[sg[i-s[j]]]=1; j++; } j=0; while (mex[j]) j++; sg[i]=j; } } int main(){ int tmp,i,j; scanf("%d",&k); while (k!=0){ for (i=1;i<=k;i++) scanf("%d",&s[i]); sort(s+1,s+k+1); //这个不能少 sprague_grundy(); scanf("%d",&m); for (i=0;i