【文件属性】:
文件名称:acm代码模版
文件大小:236KB
文件格式:DOC
更新时间:2021-01-27 11:32:53
ACM
博弈论
巴什博奕
只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。
(1)最后取光者得胜。
bool solve(int n,int m){return n%(m+1);}
(2)最后取光者失败。
bool solve(int n,int m){return (n-1)%(m+1);}
威佐夫博奕
有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限。
(1)最后取完者获胜。奇异状态a=[k*fai] b=a+k
const double fai=(sqrt(5.0)+1)*0.5;//黄金分割数
bool solve(int a,int b){
if(a>b)swap(a,b);
if(a==0)return b;
return b!=int(a/fai)+a+1;
}