题目大意:一个n(n<=1000)行,20列的棋盘上有一些棋子,两个人下棋,每回合可以把任意一个棋子向右移动到这一行的离这个棋子最近的空格上(注意这里不一定是移动最后一个棋子),不能移动到棋盘外,不能移动了就算输,两个人都用最优策略,问先手是否有必胜策略。 这题显然就是SG函数了吧。行与行之间互不影 ...
分类:
其他好文 时间:
2016-08-14 17:30:42
阅读次数:
112
Fibonacci again and again Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7663 Accepted Submissio ...
分类:
其他好文 时间:
2016-08-14 11:29:36
阅读次数:
173
Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8634 Accepted Submi ...
分类:
其他好文 时间:
2016-08-13 21:08:22
阅读次数:
155
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1536 题意:首先输入K 表示一个集合的大小 之后输入集合 表示对于这对石子只能去这个集合中的元素的个数 之后输入 一个m 表示接下来对于这个集合要进行m次询问 之后m行 每行输入一个n 表示有n个堆 每 ...
分类:
其他好文 时间:
2016-08-13 21:02:09
阅读次数:
153
关于无向图删边游戏,首先游戏的规则如下: 然后看下最关键的定理: 叶子节点的 SG 值为 0; 中间节点的 SG 值为它的所有子节点的 SG 值 加 1 后的异或和。 精彩证明: 有了这个定理,这个问题就可以轻松用sg函数搞定了. 然后再来看几个变形. 1. 可以发现,得到两个关键性质,直接就可以转 ...
分类:
其他好文 时间:
2016-08-13 18:17:36
阅读次数:
377
先看一个问题 HDU 3595 GG and MM (Every_SG博弈) 题目有N个游戏同时进行,每个游戏有两堆石子,每次从个数多的堆中取走数量小的数量的整数倍的石子。取最后一次的获胜。并且N个游戏同时进行,除非游戏结束,否则必须操作。 现在问题变成了,每次都必须在每个非空石子堆中选择。 这个问 ...
分类:
移动开发 时间:
2016-08-13 17:59:59
阅读次数:
216
这类博弈只需要记住一点,一个由多个游戏组成的游戏sg值为这多个游戏的sg值异或和。 也就是所有对一整个nim游戏它的sg值即为每一小堆的sg的异或和。 hdu 5795 这题就是可以选择把一堆石子分成3堆。 通过上述方法,只需要打表找出规律即可。 ...
分类:
其他好文 时间:
2016-08-13 16:52:21
阅读次数:
128
改变了下规则,现在变成了最后拿的人输。 如果对于单纯的nim的话,只需要判断每堆都是1个石子的特殊情况。 因为如果存在有大于1个石子的堆话,类似于nim的取法,处于必胜状态的一方只需要在 对方取完后只剩下一堆>1石子的堆中,选择留下奇数个大小为1的堆或偶数个大小为1的堆。 ...
分类:
其他好文 时间:
2016-08-12 16:45:07
阅读次数:
200
对于Nim博弈,任何奇异局势(a,b,c)都有a^b^c=0。 延伸: 任何奇异局势(a1, a2,… an)都满足 a1^a2^…^an=0 首先定义mex(minimal excludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非负整数。 例如mex{0,1,2,4}=3、 ...
分类:
其他好文 时间:
2016-08-11 22:25:11
阅读次数:
113
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5724 题目大意:n行20列的棋盘,对于每行,如果当前棋子右边没棋子,那可以直接放到右边,如果有就跳过放到其后面的第一个空位子,A先操作,最后谁无法操作则输,给定每行棋子状态,问先手是否必胜题目分析:组合 ...
分类:
其他好文 时间:
2016-08-10 06:25:04
阅读次数:
158