SG函数模板:
1 void getSG(int *s,int t){ 2 int i,j; 3 memset(sg,0,sizeof(sg)); 4 for(i=1; i= 0) 8 Hash[sg[i-s[j]]] = 1; 9 for(j=0; j
例子:HDU1536
这题有个小坑,一直时间超限,只要是Hash()类型定义为int了,改问bool速度就快多了。。。
题目链接:
1 #include2 #include 3 #include 4 #include 5 const int maxn = 10005; 6 int a[105],sg[maxn]; 7 bool Hash[maxn]; 8 using namespace std; 9 10 void getSG(int *s,int t){11 int i,j;12 memset(sg,0,sizeof(sg));13 for(i=1; i = 0)17 Hash[sg[i-s[j]]] = 1;18 for(j=0; j