题目链接:hdu_5795_A Simple Nim 题意: 有N堆石子,你可以取每堆的1-m个,也可以将这堆石子分成3堆,问你先手输还是赢 题解: 打表找规律可得: sg[0]=0 当x=8k+7时sg[x]=8k+8, 当x=8k+8时sg[x]=8k+7, 其余时候sg[x]=x;(k>=0) ...
分类:
其他好文 时间:
2016-08-04 19:13:39
阅读次数:
142
思路:直接打表找sg函数的值,找规律,没有什么技巧 还想了很久的,把数当二进制看,再类讨二进制中1的个数是必胜或者必败状态。。。。 打表: 代码: ...
分类:
其他好文 时间:
2016-08-04 19:04:27
阅读次数:
181
Fibonacci again and again Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7266 Accepted Submissio ...
分类:
其他好文 时间:
2016-07-25 09:26:42
阅读次数:
158
题意: 一个n行20列的棋盘。 每一行有若干个棋子。 两人轮流操作, 每人每次可以将一个棋子向右移动一个位置, 如果它右边有一个棋子, 就跳过这个棋子, 如果有若干个棋子, 就将这若干个都跳过。 但是棋子不能移出边界。 如果没有办法移动了, 就算输。 问你先走的能否赢。分析: 使用状压的SG. 把每 ...
分类:
其他好文 时间:
2016-07-25 00:04:36
阅读次数:
155
题意: 有两个相同的盒子,一个盒子里面有n个球,另一个盒子里面有1个球,每次清空球较少的那个盒子,然后从另外的一个盒子里拿到空盒子里使得操作后两个盒子至少有一个球,判断是先手还是后者胜; 思路: 跟每次拿走至少一个且不超过一半那个一样的sg函数; AC代码: ...
分类:
其他好文 时间:
2016-07-24 22:18:44
阅读次数:
170
题意: 有n堆石子,分别有a1,a2,...,an个,两个游戏者轮流操作,每次可以选一堆m拿走至少一个且不超过一半的石子,谁不能拿石子就算输; 思路: a1太大打印sg表找规律,然后就是异或和了; AC代码: ...
分类:
其他好文 时间:
2016-07-24 20:57:31
阅读次数:
211
A Chess Game Problem Description Let's design a new chess game. There are N positions to hold M chesses in this game. Multiple chesses can be located ...
分类:
其他好文 时间:
2016-07-22 22:53:15
阅读次数:
179
白书上的例题,用长度作为状态推算sg值。代码写的有点挫。 ...
分类:
其他好文 时间:
2016-07-22 22:52:47
阅读次数:
167
百度搜一下博弈论 由感性认识到理性认识的论文 理论铺垫: 1、定义P-position和 N-position:其中P代表Previous,N代表Next。直观的说,上一次move的人有必胜策略的局面是P-position,也就是“先 手必败”,现在轮到move的人有必胜策略的局面是N-positi ...
分类:
其他好文 时间:
2016-07-22 21:33:35
阅读次数:
228
因为一行最多只有20个数,也就是说只有(1<<20)种状态,向右移动表示小的数推向了大的数。可以用SG函数预处理出所有情况。然后把每一行的SG函数值异或一下,非零则必胜,否则输。 ...
分类:
其他好文 时间:
2016-07-21 23:31:33
阅读次数:
230