博弈
Hearthougan
这个作者很懒,什么都没留下…
展开
-
hdu 2509
博弈相关知识#include #include #include using namespace std;int main(){ int n; int m, s, flag; while(~scanf("%d", &n)) { s = 0; flag = 0; for(int i =原创 2014-03-11 18:58:16 · 920 阅读 · 0 评论 -
Graph Games 以及 The Sprague-Grundy Function(S-G函数)
1 Games Played on Directed Graphs.Definition. Adirected graph,G,is a pair (X, F) where X is a nonempty set of vertices(positions) and F is a function that gives for each x∈X a subset of X,原创 2014-03-11 21:22:13 · 1360 阅读 · 1 评论 -
hdu 1907
博弈相关知识#include #include using namespace std;int main(){ int T, n, m; bool flag ; int s; cin>>T; while(T--) { flag = false; cin>>n; s = 0;原创 2014-03-11 18:40:17 · 586 阅读 · 0 评论 -
博弈知识汇总
博弈知识汇总有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜。(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。转载 2014-03-09 14:40:02 · 1078 阅读 · 0 评论 -
hdu 1846
巴什博弈(Bash Game):问题:只有一堆n个物品,有两个人轮流分别对这对物品取物,规定每次至少取一个,至多取走m个,最后取光的胜,假设双方都使用最优的策略。分析:如果有n = m + 1,那么无论怎么去先取着必输,因为先取着至多可以取m个,剩下的后取着可以一次性取完。如果n = (m+1) * r + s,其中 r 为任意自然数,s 因此:如果有 n % (m+1) == 0原创 2014-03-09 19:16:42 · 739 阅读 · 0 评论 -
hdu 1850 Being a Good Boy in Spring Festival
尼姆博弈(Nimm Game):有三堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限,最后取光者得胜。这种情况最有意思,它与二进制有密切关系,我们用(a,b,c)表示某种局势,首先(0,0,0)显然是奇异局势,无论谁面对奇异局势,都必然失败。第二种奇异局势是(0,n,n),只要与对手拿走一样多的物品,最后都将导致(0,0,0)。仔细分析一下,(1,原创 2014-03-09 14:32:15 · 648 阅读 · 0 评论 -
nyoj 23 取石子(一)
题目来源:http://acm.nyist.net/JudgeOnline/problem.php?pid=23简单的巴什博奕,原创 2014-04-27 21:13:46 · 669 阅读 · 0 评论