博弈的题目,打表找规律还是相当有用的一个技巧。这个游戏在原始的Nim游戏基础上又新加了一个操作,就是游戏者可以将一堆分成两堆。这个SG函数值是多少并不明显,还是用记忆花搜索的方式打个表,规律就相当显然了。 1 #include 2 #include 3 4 const int maxn = 1...
分类:
其他好文 时间:
2015-04-21 14:16:41
阅读次数:
131
考虑到Bouton定理的证明过程,设n个数的Nim和(异或和)为X,其最高位的1在第k位,那么n个数中一定有个y的第k为也是个1.将y的数量变为X xor y,那么n的数的Nim和为0,便转为先手必败局面。所以先手有多少种取法,就看n个数里面有多少个y,满足二进制的第k为是个1。 1 #includ...
分类:
编程语言 时间:
2015-04-11 20:37:06
阅读次数:
189
//必胜局面是所有的黑子和白子都相邻,
//本题想要达到黑子和白子之间都相邻,即走完它们之间的所有空格
//就相当于一个NIM博弈
#include
#include
#include
using namespace std ;
int main()
{
// freopen("in.txt","r",stdin) ;
int n , m ;
int t...
分类:
其他好文 时间:
2015-04-11 14:54:50
阅读次数:
111
//当该点时p-position时,先手输
//当该点为n-position时,即a1^a2......^an = k时;
//先手的第一步是使得a1^a2^.......^an^k = 0;
//那么只要ai^k
#include
#include
#include
using namespace std ;
const int maxn = 10000010 ;
int n...
分类:
编程语言 时间:
2015-04-10 09:41:33
阅读次数:
157
题意:
跟经典的nim除了胜利条件不一样(nim当游戏者面对空的决策集判负,anti-SG当游戏者面对空的决策集判负),其他都一样。
分析:
设全局状态为s,单个游戏为t。先手必胜条件:(g(s)!=0&&Existg(t)>1)||(g(s)==0&&Anyg(t)
代码:
//poj 3480
//sep9
#include
using namespace std;
int ma...
分类:
其他好文 时间:
2015-04-09 19:51:38
阅读次数:
213
题目链接:ZOJ 3591 Nim
题意:根据题目给出的代码得到n堆石头的各自的数量,求先手选出连续的若干堆并且必胜的方法数。(比如:3,1,1 每堆石头数是1,1,1.先手选出(1),(1),(1),(1,1,1) 这四种方案是必胜的,所以答案是4)
思路:在n堆取石头首先想到的是Nim博弈,连续的若干堆,即求连续子序列异或和为0的数量m,n*(n+1)/2-m就是答案
(Nim博弈结论,...
分类:
其他好文 时间:
2015-04-09 09:03:59
阅读次数:
136
题意:通过他给的代码,跑出 n个数a【i】。 然后取任意多个连续的数,让他们 异或操作。 计算有多少种取法,使操作后结果为0.
做法:连续就想到了前缀和。 把前i个a的异或操作结果放在 num[i]中, 那么a【i】到a【j】个数的异或结果就是 num[j]^num[i-1]。 还有num【i】自身代表了开头到a【i】这些数的异或结果。
然后只要计算有多少num【i】为0,以及多少 num[j]^num[i-1] 为0就行了。再把总方案数 c(n,2)减去为0的个数,就是答案了。但是普通...
分类:
其他好文 时间:
2015-04-07 21:44:43
阅读次数:
231
题目:http://hzwer.com/1976.html分析:先Orz hzwer对于盒子外面的巧克力棒,就是Nim游戏。所以就很容易想到先手第一步最好从盒子中取出m根巧克力棒,使得这些巧克力棒的异或和为0,并且盒子中剩余的巧克力棒无论如何取出来都不能得到异或和为0(其实m就是所有巧克力棒的最长异...
分类:
其他好文 时间:
2015-04-07 00:28:19
阅读次数:
161
声明一个struct:type Vector2D* = object x*, y*: float32名字后面带星号就是对module外public, 不带星号就是private.要创建一个Vector2D: vec = Vector2D(x: 0, y: 0)object前加上r...
分类:
编程语言 时间:
2015-04-04 19:40:17
阅读次数:
1540
Nim is a 2-player game featuring several piles of stones. Players alternate turns, and on his/her turn, a player’s move consists of removing one or more stones from any single pile. Play ends when all the stones have been removed, at which point the last p...
分类:
其他好文 时间:
2015-04-01 15:21:45
阅读次数:
197