随笔分类 -  博弈

sg 函数模版
摘要:1 #define MAXN 1005 2 3 using namespace std; 4 5 int s[MAXN], ns; //取值集合 6 int sg[10005]; 7 8 int mex(int x) 9 {10 if(sg[x] != -1)11 return sg[x]; 12 bool v[MAXN]; //x的后继集合13 memset(v, 0, sizeof(v));14 for(int i=0; i<ns; i++){ //求后继集合15 int t = x-s... 阅读全文

posted @ 2013-07-17 15:55 KimKyeYu 阅读(185) 评论(1) 推荐(0)

EOJ 1068 石子游戏-B
摘要:http://acm.cs.ecnu.edu.cn/problem.php?problemid=1068题意: 该题比一般的NIMM博弈多了每次取1-m个的限制,容易联想到巴什博奕。解题思路: 把每堆数量减少到 2 #include 3 #include 4 #include 5 #include 6 #include 7 8 using namespace std; 9 10 int main()11 {12 //freopen("testin.txt", "r", stdin);13 //freopen("testout.txt" 阅读全文

posted @ 2013-07-07 22:07 KimKyeYu 阅读(308) 评论(0) 推荐(0)

【转】ACM 取石子问题
摘要:取石子问题有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜。(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的 法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走 阅读全文

posted @ 2013-07-07 12:37 KimKyeYu 阅读(332) 评论(0) 推荐(0)

【转】ACM博弈知识汇总
摘要:博弈知识汇总有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个 人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏 ,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够 取胜。(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规 定每次至少取一个,最多取m个。最后取光者得胜。 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个, 后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果 n=(m+1)r+s,(r为任意自然数,s≤m),那么 阅读全文

posted @ 2013-07-07 12:33 KimKyeYu 阅读(241) 评论(0) 推荐(0)

导航