grundy值的求解
来源:互联网 发布:高邮2016秋季网络培训 编辑:程序博客网 时间:2024/06/05 19:32
硬币游戏2
挑战程序设计竞赛P315
1堆的情况:
#include<bits/stdc++.h>int x=9,grundy[1000],k=2,A[1000]={1,4},n=3;using namespace std;int main(){grundy[0]=0;for(int i=1;i<=9;i++){set<int>s;for(int j=0;j<k;j++){if(i>=A[j]) s.insert(grundy[i-A[j]]);}int g=0; if(s.count(g)!=0) g++; grundy[i]=g;}if(grundy[x]) printf("Alice\n");else printf("Bob\n");}
n堆的情况:
#include<bits/stdc++.h>#define MAX_N 1000#define MAX_K 1000 #define MAX_X 1000using namespace std;int N=3,K=3,X[MAX_N]={5,6,8},A[MAX_K]={1,3,4};int grundy[MAX_X+1];int main(){grundy[0]=0;int max_x=*max_element(X,X+N); for(int j=1;j<=max_x;j++){set<int>s;for(int i=0;i<K;i++){if(A[i]<=j) s.insert(grundy[j-A[i]]);}int g=0;while(s.count(g)!=0) g++;grundy[j]=g;}int x=0;for(int i=0;i<N;i++) x^=grundy[X[i]];if(x!=0) puts("Alice\n");else puts("Bob\n");return 0;}
0 0
- grundy值的求解
- poj 2311 Cutting Game nim与状态的grundy值
- 公平游戏的Sprague-Grundy定理
- POJ 2311 —— 博弈Grundy值
- poj 2425 A Chess Game grundy值
- 求解sizeof的值
- poj 3537Crosses and Crosses 博弈论之grundy值
- Sprague-Grundy
- 求解分段函数的值
- 求解分段函数的值
- 求解分段函数的值
- 求解分段函数的值
- 求解分段函数的值
- 求解分段函数的值
- Codeforces Round #188 (Div. 1) Game with Powers 引发的联想 NIM游戏 Sprague Grundy Theory
- 博弈论 套路开始的地方(NIM游戏和Sprague-Grundy函数)
- 【转】找出游戏的必胜策略——Nim与Grundy数小记
- poj 2960 S-Nim nim博弈grundy值计算法入门
- 第一次做树的题,并且用到了vector<pair<int,int> >,收获很大
- deepin下mysql的卸载和重装
- STL之五:set/multiset用法详解
- Windows系统功能模拟 C++(EasyX插件)—— 4th 界面绘制(二)
- IOS之OC语言基础知识
- grundy值的求解
- 设计一个音乐播放器,用List列表显示手机中所有音乐,支持播放、暂停、继续、上一首、下一首等功能。
- 函数式编程入门
- 配置服务器 —— 安装PhpMyAdmin
- win10下基于anaconda安装tensorflow gpu版
- 单例设计模式
- HTML(4)——标题
- Container_of宏
- 基础算法(一)---抽象数据类型之栈(先进后出)