博弈

博弈学习:

先看三个博弈,了解基本概论,记住公式。

明白必败点(P)和必胜点(N)的概论,我觉得用必败态和必胜态更合适一点。这里要注意理解一下。

然后是后继点和sg值,后继点(态)是从当前点(态)进过一步能够走到的状态。

  sg值是定义为:大于等于0 且 不等于它所有后继点的sg 值的最小整数

sg值为0说明这是必败点,不为0说明这是必胜点。

一个很优雅的结论:(在NIM博弈中) 对多组数。sg(x)= sg(x1) ^ sg(x2) ^ …… ^ sg(xn)。

          sg(x) 为0,为P,sg(x)不为0,为N。

杭电上的题目:

hdu 1517

从1开始,每次可以乘2或9,谁能先到给定的数,谁赢。


hdu 1525

两个数,大数减去小数的倍数,谁能先到0谁赢。


hdu 1729

n个包,每个包有体积si和初始放的石头ci,往里面放石头,放的个数小于ci的平方,看谁先没得放,判断先手是否能赢。


hdu 1730

  两者之间的记录做sg。

hdu 1846

  简单题,最基本的巴士博弈

hdu 1847

  简单题,巴士博弈

hdu 1848

  简单题,巴士博弈,经典的菲波那契数。

hdu 1849

  NIM博弈

hdu 1850

  看后面2176

hdu 1851

  NIM博弈,sg为m%(l+1)。

hdu 1907

hdu 2147

hdu 2176

  跟前面1850一样的题目。对每一堆而言,其他堆的异或值必须小于该堆得数,这样拿一些石子后才能是所有堆得异或值为0,达到必败点。

hdu 2509

hdu 2516

   斐波那契数列是必败点,推出来的,为什么,不知道!!!
原文地址:https://www.cnblogs.com/silencExplode/p/1954214.html