SG 函数初步 HDU 1536 && HDU 1944
2017-08-16 13:48
323 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?
pid=1944
pid=1536"> http://acm.hdu.edu.cn/showproblem.php?pid=1536
给定每一次能够取的石头数,给定非常多种情况,每一种情况有若干堆石头,推断先手胜负。
SG函数打表,然后直接抑或。推断结果是否为0。第一次写SG函数,贴个代码,慢慢理解。
代码:
pid=1944
pid=1536"> http://acm.hdu.edu.cn/showproblem.php?pid=1536
给定每一次能够取的石头数,给定非常多种情况,每一种情况有若干堆石头,推断先手胜负。
SG函数打表,然后直接抑或。推断结果是否为0。第一次写SG函数,贴个代码,慢慢理解。
代码:
/* *********************************************** Author :rabbit Created Time :2014/7/4 12:00:18 File Name :3.cpp ************************************************ */ #pragma comment(linker, "/STACK:102400000,102400000") #include <stdio.h> #include <iostream> #include <algorithm> #include <sstream> #include <stdlib.h> #include <string.h> #include <limits.h> #include <string> #include <time.h> #include <math.h> #include <queue> #include <stack> #include <set> #include <map> using namespace std; #define INF 0x3f3f3f3f #define eps 1e-8 #define pi acos(-1.0) typedef long long ll; int f[110],d[20010],g[110]; int SG(int p,int k){ memset(g,0,sizeof(g)); for(int i=0;i<k;i++){ int t=p-f[i]; if(t<0)break; if(d[t]==-1)d[t]=SG(t,k); g[d[t]]=1; } for(int i=0;;i++) if(!g[i])return i; } int main() { //freopen("data.in","r",stdin); //freopen("data.out","w",stdout); int n; while(~scanf("%d",&n)){ if(!n)break; for(int i=0;i<n;i++)scanf("%d",&f[i]); sort(f,f+n); memset(d,-1,sizeof(d)); d[0]=0; for(int i=1;i<=10010;i++) d[i]=SG(i,n); int m; scanf("%d",&m); while(m--){ int k; scanf("%d",&k); int sum=0,v; while(k--){ scanf("%d",&v); sum^=d[v]; } if(!sum)printf("L"); else printf("W"); } puts(""); } return 0; }
相关文章推荐
- SG 函数初步 HDU 1536 && HDU 1944
- hdu 1536 OR poj 2960 S-Nim 博弈论,,求出SG'函数就可以解决
- SG 函数 hdu1524 & poj 2425 hdu1524 A Chess Game
- [hdu 1536 S-Nim] SG 函数
- hdu 1536 &&hdu1944 S-Nim (sg函数打表)
- 二分查找求函数的区间最小值&&http://acm.hdu.edu.cn/showproblem.php?pid=2899
- hdu 1848 sg——dfs&&打表双实现
- HDU 1536 S-Nim(SG经典博弈)
- HDU-1524-A Chess Game && POJ-2425 【sg】
- HDU 1848 Fibonacci again and again SG函数详解!
- HDU 1536 - S-Nim(SG)
- HDU - 1848 Fibonacci again and again SG函数应用
- HDU1536 S-Nim(博弈入门暴力打SG表)
- hdu 1536 | hdu 1944 - S-Nim(博弈-SG)
- HDU 1536/1944 求SG值(走法不任意)
- 经典SG问题 hdu 1536
- HDU-1050-Moving Tables(C++ && 贪心初步)
- HDU 1536 & 1944
- 【 SG 函数 】HDU 1848
- hdu 1536 S-Nim_求sg值模版