博弈算法大全(含已做过的题) --------只记算法,不讲原理
斐波那契博弈
一堆石子,每次至少取1,至多取上次的2倍
若n为斐波那契数列,则后手胜
---------------------------------------------------------华丽的分割线----------------------------------------------------
巴什博奕
一堆石子,每次至少取1,至多取m,如果n=k*(m+1),则后手胜
---------------------------------------------------------华丽的分割线----------------------------------------------------
威佐夫博奕
共两堆石子,一堆为X个,一堆为Y个且有X<Y
另设z=y-x
如果(int)[((sqrt(5)+1)/2)*z ] == x,先手败
---------------------------------------------------------华丽的分割线----------------------------------------------------
环形博弈
n个石子围成一个环,每次取一个或者取相邻的2个
石子数<=2先手赢,否则后手赢
---------------------------------------------------------华丽的分割线----------------------------------------------------
尼姆博奕
共m堆,每堆n个石子,每次至少取一个,多者不限
用0与每个数异或,如最后结果为0,则后手胜(设一数组a[m],令sum=0,循环与数组每一个数据异或(sum^=a[i]),sum最后等于0则后手胜)
题库
game Nim博弈+DP
---------------------------------------------------------华丽的分割线----------------------------------------------------
对称博弈
n个石子围成环,每次只能取相邻的1-k个
如果k < n:
对k=1,如果n能被2整除,则后手赢
如果k>1,后手赢(先手取什么位置后手就取对称的位置,这样保证后手永远能取到)
如果k>=n:
先手赢.
题:
Competitive Seagulls 对称博弈变形
---------------------------------------------------------华丽的分割线----------------------------------------------------
其他博弈
有些博弈没有既定模板,需要推算规律从而解题