您的位置:首页
poj 3537 Crosses and Crosses 博弈论之grundy值
2017-04-28 20:28
330 查看
题意:
给1*n的格子,轮流在上面叉叉,最先画得3个连续叉叉的赢。问先手必胜还是必败。
分析:
求状态的grundy值(也就是sg值),详细怎么求详见代码。为什么这么求要自己想的,仅仅可意会(别人都说去看game theory,呵呵)。
代码:
给1*n的格子,轮流在上面叉叉,最先画得3个连续叉叉的赢。问先手必胜还是必败。
分析:
求状态的grundy值(也就是sg值),详细怎么求详见代码。为什么这么求要自己想的,仅仅可意会(别人都说去看game theory,呵呵)。
代码:
//poj 3537 //sep9 #include <iostream> #include <set> using namespace std; int grundy[2048]; int h[2048]; int get_grundy(int n) { if(n<0) return 0; if(grundy !=-1) return grundy ; int h[2048]; memset(h,0,sizeof(h)); for(int i=1;i<=n;++i){ int t=get_grundy(i-3)^get_grundy(n-i-2); h[t]=1; } int i; for(i=0;h[i];++i); return grundy =i; } int main() { int n; memset(grundy,-1,sizeof(grundy)); grundy[0]=0,grundy[1]=1,grundy[2]=1,grundy[3]=1; while(scanf("%d",&n)==1) if(get_grundy(n)!=0) puts("1"); else puts("2"); return 0; }
相关文章推荐
- poj 3537 Crosses and Crosses 博弈论之grundy值
- POJ-3537(Crosses and Crosses)——博弈论,SG函数
- [poj 3537]Crosses and Crosses(博弈论)
- poj 3537 Crosses and Crosses 博弈论
- POJ 3537 Crosses and Crosses
- POJ 3537 Crosses and Crosses
- POJ 3537 Crosses and Crosses(SG/还未想完全通的一道SG)
- POJ 3537 Crosses and Crosses
- POJ 3537 Crosses and Crosses
- poj 3537 Crosses and Crosses(NIM变形)@
- 博弈之 Nim 游戏&poj 3537 Crosses and Crosses
- POJ 3537 Crosses and Crosses [Multi-SG]
- POJ-3537 Crosses and Crosses (博弈, SG函数)
- POJ 3537 Crosses and Crosses
- POJ 3537 Crosses and Crosses
- 【POJ】【3537】Crosses and Crosses
- poj 3537 Crosses and Crosses (Multi-SG游戏)
- POJ 3537:Crosses and Crosses(Multi-Nim)
- POJ 3537 Crosses and Crosses(博弈)
- poj_Crosses and Crosses_3537