1.从nim游戏讲博弈论
考虑这样一个游戏,有三堆火柴,记为(a,b,c),每次可以在一堆中取任意根,也可以都拿走,但不能从多个堆中同时拿,无火柴可拿的人输.
我们可以推导出sg函数,SG(x)=x,根据SG定理,x1^x2^…..^xn=0则一定输
那么当游戏不是nim游戏的时候,如何确定胜负关系呢
例题1. hdu153
原题
题意:跟nim游戏一样,但不可以取任意根,只能取k根火柴,k属于集合限定集合s。
题解:因为数据范围很小,递推求SG函数,找到最小的不能达到的状态
再取亦或。
代码:
int T,k,i,n,m,j,x,y,z,ans;
int s[10005];
int d[105];
int get(int x)
{
int mm[105];
int i;
if (s[x]!=-1) retur