博弈论
Winterfell30
这个作者很懒,什么都没留下…
展开
-
HDOJ 3537 Daizhenyang's Coin
题意给出一些正面朝上的硬币的位置,每次可以将一个或者两个或者三个硬币翻面。最右边一个硬币必须是正面的,最后不能操作的人输。思路SG打出表,然后能发现SG(n)是有规律的,当2n的二进制位的1的个数是奇数时SG(n)=2*n,否则是2*n+1。 这个规律的证明网上有很多不再赘述,附上SG打表代码。代码#include <stdio.h>#include <string.h>#include <i原创 2016-08-04 01:03:12 · 632 阅读 · 0 评论 -
HDOJ 5724 Chess (SG)
题意有n排列数为20的格子,有些行的有些格子放有棋子,每次可以把一个棋子向右移动一个格子,也可以从别的棋子上面跳过去,不能走的人即为输,判断这个人输赢。思路加深了一下对求SG表的记忆,其实就是类似DP的考虑当前状态可以通过一步变成什么子问题的状态,然后就求子问题中不存在的mex就行了。 这个题在算某个行的状态的时候把每一行状压一下然后枚举下一步的子问题就可以了。代码#include <stdio.原创 2016-10-23 21:21:04 · 370 阅读 · 0 评论 -
HDOJ 5754 Life Winner Bo
题意在1,1处的国际象棋,两个人依次移动,走到n,m。 求King,Queen,knight,castle走法的时候谁会赢或者平局。思路国王就判断一下要走步数的奇偶性就可以了,都为偶数的时候G会胜利。 车走的时候相当于两堆石子每次取任意个,也就是说直接的nim,两个步数异或起来就可以了。或者考虑对称性也能得到。 女王走的时候因为多加了斜着走,就相当于两堆石子中多加入了同时取相同个数石子的操作就原创 2016-10-24 12:52:42 · 477 阅读 · 0 评论