博弈
文章平均质量分 77
Benzema67
北京邮电大学学生
展开
-
三种博弈简介
博弈论基础知识 另附资料: http://www.math.ucla.edu/~tom/Game_Theory/Contents.html 有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可.两个人轮流从堆中取物体若干,规定最后取光物体者取胜.这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理.下面我们来分析一下要如何才能够取转载 2012-01-20 20:42:09 · 849 阅读 · 0 评论 -
uva 11137
刘汝佳《训练指南》上的博弈例题 用到了组合游戏和的概念 #include #include typedef long long ll; using namespace std; int sg[210],len; char s[210]; bool ok[210],can[210]; void init(){ bool vis[210]; int i,j; mem原创 2013-04-30 01:27:34 · 1300 阅读 · 4 评论 -
POJ 4049
极大极小博弈 #include #include #include #include #include using namespace std; char goal[10]; char str[4][4]; bool check(int sta){ int tmp[4][4]; int i,j; memset(tmp,0,sizeof(tmp)); for(i=原创 2013-03-17 19:07:41 · 1110 阅读 · 0 评论 -
HDU 2897
SG打表题 打表函数如下: #include #include #include #include using namespace std; int sg[110],a,b; int find(int i){ if(sg[i]!=-1)return sg[i]; int use[100],j; memset(use,0,sizeof(use)); for(j原创 2012-10-20 22:42:39 · 1132 阅读 · 2 评论 -
BOJ 672
打表博弈 #include #include #include #include using namespace std; int main(){ int i,t,T,k,s,n; scanf("%d",&T); for(t=1;t<=T;t++){ scanf("%d %d",&n,&k); int num=0; for原创 2012-10-21 09:25:41 · 647 阅读 · 0 评论 -
HDU 4203
sg博弈 首先写个SG打表程序 #include #include #include #include using namespace std; int sg[110],k; int find(int i){ if(sg[i]!=-1)return sg[i]; int use[100],j; memset(use,0,sizeof(use)); for(j=1原创 2012-10-20 22:28:04 · 1147 阅读 · 0 评论 -
HDU 2147
/* * 博弈论:组合博弈 * 必败点(P点) :前一个选手(Previous player)将取胜的位置称为必败点。 * 必胜点(N点) :下一个选手(Next player)将取胜的位置称为必胜点。 * 必败(必胜)点的属性: * (1) 所有终结点是必败点(P点); * (2) 从任何必胜点(N点)操作,至少有一种方法可以进入必败点(P点); * (3)无论如何操作, 从必败点原创 2012-05-12 12:59:52 · 1566 阅读 · 0 评论 -
POJ 2311
SG应用的场景 游戏有两个人参与,二者轮流做出决策。且这两个人的决策都对自己最有利。 当有一人无法做出决策时游戏结束,无法做出决策的人输。无论二者如何做出决策,游戏可以在有限步内结束。 游戏中的同一个状态不可能多次抵达。且游戏不会有平局出现。 任意一个游戏者在某一确定状态可以作出的决策集合只与当前的状态有关,而与游戏者无关。 这个题目乍看一眼不满足第二条。因为当一个人剪出原创 2012-05-12 19:51:54 · 1592 阅读 · 2 评论 -
SG函数
适用范围和限制条件: 1.甲乙两人取石子游戏及其类似的游戏; 2.每一步只能对某一堆石子进行操作; 3.每一步操作的限制,只与这堆石子的数目或一些常数有关; 4.操作在有限步内终止,并不会出现循环; 5.谁无法继续操作,谁就是输家。 此类搏弈游戏的一般性解法: 用一个n元组(a1, a2, …, an),来描述游戏过程中的一个局面。 用符号#S,表示局面S所对应的二进制数。原创 2012-05-12 17:19:10 · 873 阅读 · 0 评论 -
HDU 1848
sg函数的简单应用 #include #include using namespace std; int fib[20],sg[1010],m,n,p; int calsg(int now){ int i,tem; int next[20]; memset(next,0,sizeof(next)); for(i=1;fib[i]<=now;i++){ tem=now-fib[i];原创 2012-05-12 15:14:10 · 1675 阅读 · 0 评论 -
POJ 1704 Georgia and Bob
此题是阶梯博弈。 学习阶梯博弈的话推荐看这个博客,讲的很好http://blog.sina.com.cn/s/blog_63e4cf2f0100tq4i.html 此题wa在sort函数,发现我竟然不会用呀!郁闷 这个函数可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址。也就是说,排序的区间是[a,b)。简单来说,有一个数组int a[100],要对原创 2012-01-20 16:00:45 · 917 阅读 · 0 评论 -
极大极小搜索+alpha_beta剪枝)
http://poj.org/problem?id=1085 38界ACM杭州站I题原创 2013-11-03 18:00:39 · 1712 阅读 · 0 评论