博弈论专题 kuangbin题单(巴什,威佐夫,nim,fib博弈)+SG函数打表

省赛前先练着,回来补完

巴什博弈: 一堆n个物品两个人来拿,每人至少拿一个,最多拿m个,问最后取完的人win
判断条件:n%(m+1)!=0

cin>> n>>m;
if (n%(m+1)!=0)
	cout<<first win<<endl;
else
	cout<<second win<<endl;

威佐夫博弈:两堆物品a,b,有两个人轮流来取,从一堆中取至少一个没有上限,或者从两堆中取相同数量的物品。两堆最后都取完的人win
判断点:(b-a)*(1+sqrt(5))/2,b为ab中的最大值,

cin>>a>>b;
if(a>b) swap(a,b);
int temp=(b-a

你可能感兴趣的:(博弈论)