博弈相关

目录

巴什博弈

题目描述:

原理:

相关题目:

威佐夫博弈

题目描述:

原理:

相关题目:

NIMM博弈

题目描述:

原理:

相关题目:

 


巴什博弈

题目描述:

n个物品,两个人轮流取,每个人至少取一个,最多取m个,先将物品取光的的人获胜。

原理:

我们先考虑最简单的局面,如果只有(m+1)个物品,先手无论怎么取,后手都能将剩下的一次取完获胜。因此可以知道(m+1)是一个先手必败局面。对于(m+1)*k个物品同理可知,无论先手怎么拿,后手都可以合法地拿走一些物品,使剩下的依然是(m+1)的整数倍,直到先手遇到(m+1)必输局面。因此(m+1)*k是一个先手必输局面。由此可知,题目给出n,m,如果

n%(m+1)!=0,那么先手必赢,反之,先手输。

相关题目:

HDU2188 悼念512汶川大地震遇难同胞——选拔志愿者

https://paste.ubuntu.com/p/BHykHtnh7W/

HDU2149 Public Sale

https://paste.ubuntu.com/p/5wQbznnkkN/

HDU1846 Brave Game

https://paste.ubuntu.com/p/m5wmWhWnYJ/

 

威佐夫博弈

题目描述:

有两堆若干个物品,每个人轮流在任意一堆取至少一个或同时从两堆中取同样多的物品,先将物品取光者胜。

原理:

仍然先考虑简单的局面,对于(0,1),(1,1)这样的局面,一定是必赢的局面,那么对于(1,2)这样的局面,你合法地拿取,一定会将局面变成必赢的局面,所以这是必输的局面。由此不断推出必赢的局面有哪些呢?(0,0),(1,2),(3,5),(4,7),(6,10)等等。一通数学推理可以得到奇异局面的通项公式:a_{k}=\left [ k\ast \left ( sqrt(5)+1 \right )/2 \right ]     b_{k}=a_{k}+k

其中[]代表向下取整,k代表出现的第几个奇异局面。具有以下性质,奇异局面无论怎么拿都会变成非奇异局面,非奇异局面可以通过适当的操作变成奇异局面。为什么是这样,指路队友博客——》》wz-archer

相关题目:

HDU1527 取石子游戏

https://paste.ubuntu.com/p/4BGJvSKCY4/

HDU2177 取(2堆)石子游戏

https://paste.ubuntu.com/p/cX6jqh4SpQ/

注意!注意!HDU2177这道题网络上大部分都是枚举找的,队友提供的邪教思想,给定一个局面(a,b)后,如果是非奇异局面找到它能转换的奇异局面,假设a,通过k=[a_{k}*2/(sqrt(5)+1))],[]代表向上取整,假设a=b_{k},通过a_{k}=a-[a/((sqrt(5)+1)/2+1)],[]代表向上取整。因为楼主和队友都是数学辣鸡,所以也不知道这个骚操作对不对,题过是过了,欢迎指摘。

NIMM博弈

题目描述:

有若干堆物品,每堆物品有若干个,两个人轮流选择任意一堆取至少一个,没有物品可以取的人输。

原理:

有个JULAO找到的方法:对于k堆物品,每堆物品个数为a_{1}a_{2}a_{3},,,a_{k},异或和sum=a_{1}\wedge a_{2}\wedge a_{3}....\wedge a_{k},如果sum为零,则该局面先手必输,反之,先手必赢。我们怎么证明这个操作是正确的呢?通过三个定义:

1.当局面是无法操作时,是先手必输。对于nimm博弈来说,就是全为零的局面,此时sum为零,先手必输。符合定义。

2.当局面是必赢局面时,总能通过合适的操作将局面变成必输局面。对于nimm博弈来说,sum不为零,必然存在某一堆a_{i},使得a_{i}^{'}=a_{i}\wedge ma_{1}\wedge a_{2}\wedge a_{3}....\wedge a_{i}^{'}\wedge ...a_{k}=0,即必赢局面转换为必输局面。

3.当局面时必输局面时,无论怎么操作都只能转换成必赢局面。对于nimm博弈来说,sum为零,无论怎么操作都不能再次变为异或和为零的情况。

由此可证,异或和的操作是对的。异或和具有消除性,巧用异或和操作。

相关题目:

HDU1850 Being a Good Boy in Spring Festival

https://paste.ubuntu.com/p/9447Q6NqqF/

HDU2176 取(m堆)石子游戏

https://paste.ubuntu.com/p/6pGJJ7K4jP/

HDU1730 Northcott Game

https://paste.ubuntu.com/p/pSdj7kRJDM/

对于HDU1730 这道题,当同一行两个棋子相邻时,不能再移动,因此能移动的步数就是两个棋子距离,能够移动的距离其实就相当于nimm博弈中的一堆物品,多行就是若干堆物品。

HDU1849 Rabbit and Grass

https://paste.ubuntu.com/p/NQxdfGZQHn/

POJ2234 Matches Game

https://paste.ubuntu.com/p/PHYJ3nHbSH/

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(ACM)