博弈
文章平均质量分 58
Lanifer
这个作者很懒,什么都没留下…
展开
-
POJ 2599 A funny game
题目: 给定一棵有N个节点双向边的树,从某个节点出发,两人轮流不重复地转移到另一个节点,无路可走的人输。 分析:树形博弈, N态的后继一定有P态,P态没有N后继态。 注意状态的转移。。。。。 代码: #include #include #include #include #include using namespace std; const int maxn=1010; int原创 2013-09-29 19:23:06 · 704 阅读 · 0 评论 -
LA 3668 A Funny Stone Game(博弈,SG定理)
LA 3668 A Funny Stone Game 题意:有n堆石子,编号为0~n-1。第i堆有Si个石子 ,两个人轮流操作。每次可以选3堆i,j,k(i 分析: 先考虑这样一个简单点的游戏:[ 记为game(i) ] 同样有n个堆,但只有其中一个堆(设为i)有一个石子,操作规则和上面的游戏相同。问先手必胜还是必败? 如果你熟悉SG定理,一定可以马上想到解决方法。 SG[ i原创 2014-01-14 18:05:12 · 1001 阅读 · 0 评论 -
UVA 10561 Treblecross(组合游戏_SG定理的应用)
题目地址 例题 ,强大的SG定理。。SG != 0 -----win ; SG == 0 -----lose ; SG的计算: 单个游戏: SG = mex ( S ) , S是所有后继态(可能是单个游戏,也可能是组合游戏)的SG函数值集合。 组合游戏: 各子游戏SG值的亦或值 参考代码: #include #include #include #include原创 2013-11-23 15:01:44 · 859 阅读 · 0 评论 -
HDU 1536 S-Nim (SG定理)
题目: 有n堆珠子,各堆的珠子数是确定的(不需相同),两人轮流从其中一堆中拿走一些珠子,最后没有珠子可拿的人输了。 这题与Nim游戏不同的是每次拿走的珠子数只能是 给定集合中的数。 分析: 这就是考察SG定理的直接应用,每一堆都可看成一个子游戏,游戏和第SG值就是"各子游戏的SG值的Nim和“ (即异或值) 代码: #include #include #include #i原创 2013-09-26 19:05:15 · 800 阅读 · 0 评论 -
HDU 1517 A Multiplication Game
题目: 基础博弈题 Stan and Ollie play the game of multiplication by multiplying an integer p by one of the numbers 2 to 9. Stan always starts with p = 1, does his multiplication, then Ollie multiplies the nu原创 2013-09-26 00:54:12 · 686 阅读 · 0 评论 -
HDU 2509 Be The Winner
简单尼姆博弈 代码: #include int main() { int T,n; scanf("%d",&T); while(T--) { int nim=0,x,sum=0; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&原创 2013-09-25 21:26:25 · 610 阅读 · 0 评论 -
HUD 1846 Brave Game (基础博弈)
题目: 各位勇敢者要玩的第一个游戏是什么呢?很简单,它是这样定义的: 1、 本游戏是一个二人游戏; 2、 有一堆石子一共有n个; 3、 两人轮流进行; 4、 每走一步可以取走1…m个石子; 5、 最先取光石子的一方为胜; 如果游戏的双方使用的都是最优策略,请输出哪个人能赢。 分析: 巴什博奕很容易理解,将n个石子按每(m+1)个一堆分成若干堆,不足m+1原创 2013-09-26 12:41:47 · 633 阅读 · 0 评论 -
博弈基础
有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个 人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏 ,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够 取胜。 (一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规 定每次至少取一个,最多取m个。最后取光者得胜。转载 2013-09-25 19:43:03 · 673 阅读 · 0 评论 -
HUD 1847 Good Luck in CET-4 EveryBody
题目: 作为计算机学院的学生,Kiki和Cici打牌的时候可没忘记专业,她们打牌的规则是这样的: 1、 总共n张牌; 2、 双方轮流抓牌; 3、 每人每次抓牌的个数只能是2的幂次(即:1,2,4,8,16…) 4、 抓完牌,胜负结果也出来了:最后抓完牌的人为胜者; 假设Kiki和Cici都是足够聪明(其实不用假设,哪有不聪明的学生~),并且每次都是Kiki先抓牌,请问谁能赢呢?原创 2013-09-26 12:52:49 · 764 阅读 · 0 评论 -
HDU 1907 John
尼姆博弈 今天开始学习博弈,这个理论果然精妙,胜负情况有二进制数异或值 是否为零决定。两个看似不相关。。 尼姆游戏分两种: 1. 最后拿者胜 (必胜态为: NIM和非零) 2. 最后取者负 (“有充裕堆且NIM和非零” 或 “没充裕堆且NIM为零”) 代码: #include int main() { int T,n; scanf("%d原创 2013-09-25 21:21:31 · 629 阅读 · 0 评论 -
LA 4411 Addition-Subtraction Game(无环图上的博弈,SG)
LA 4411 Addition-Subtraction Game 题目内容过多,此处不再描述。 典型的SG定理的应用,把“整个图只有一个顶点的value=1,其余节点的value=0,的游戏”看成单个子游戏。 好好利用亦或运算的性质可大大降低复杂度,如:偶数个相同子游戏的SG值的亦或 必为零 。 参考代码: #include #include #include #inc原创 2014-01-14 21:25:43 · 1010 阅读 · 0 评论