tyvj 1968:
我的方法,将SG值打出来,然后就可以看到规律。
具体的想法可以看------>点击打开链接
#include <stdio.h>
#include <string.h>
int sg[15][35];
int day[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int getsg(int x, int y)
{
if(sg[x][y] != -1)
return sg[x][y];
bool vis[100];
memset(vis, 0, sizeof(vis));
if(x < 10 || x == 10 && y <= 4)
vis[getsg(x + 1, y)] = 1;
if(y != day[x] && x != 12)
vis[getsg(x, y + 1)] = 1;
else
vis[getsg(x + 1, 1)] = 1;
int i;
for(i = 0; i < 100; i++)
if(vis[i] == 0)
break;
return sg[x][y] = i;
}
int getsg1(int x, int y)
{
if(sg[x][y] != -1)
return sg[x][y];
bool vis[100];
memset(vis, 0, sizeof(vis));
if(x == 12