poj 2311 Cutting Game

来源:互联网 发布:淘宝天猫黑名单处理 编辑:程序博客网 时间:2024/05/15 23:45

开始确实智障了TLE好几次,发现是记忆化搜索的数组每次都重置了。。。。。

SG 的标准模板

#include <iostream>#include <stdio.h>#include <string.h>#include <set>#define MAX 250using namespace std;int mem[MAX][MAX];int grundy(int w,int h){    if(mem[w][h]!=-1)return mem[w][h];    bool visit[MAX*5];   memset(visit,false,sizeof(visit));    for(int i=2;w-i>=i;++i)visit[grundy(i,h)^grundy(w-i,h)]=1;    for(int i=2;h-i>=i;++i)visit[grundy(w,i)^grundy(w,h-i)]=1;    int res=0;    while(visit[res]!=0)res++;    return mem[w][h]=res;}int main(){  int w,h;    memset(mem,-1,sizeof(mem));  while(~scanf("%d%d",&w,&h))  {      mem[2][2] = mem[3][2] = mem[2][3] = 0 ;      if(grundy(w,h)!=0)printf("WIN\n");      else printf("LOSE\n");  }return 0; }


0 0
原创粉丝点击