博弈
小狐狸jun
菜鸟飞呀飞~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu1846巴什博弈
接触一下博弈,这是最经典的博弈了。思路,小于等于m的就不说了,当只有m+1个物品时,则第一个人会输。这样就可以找到制胜的最佳方案了,当n=(m+1)*r+s时,只要第一个人先取s个,则接下来只要保证留下(m+1)倍数个的物品给下一个人便能赢的比赛。 代码:#includeusing namespace std;int main(){ int T,n,m;原创 2013-04-24 18:31:17 · 537 阅读 · 0 评论 -
hdu1527威佐夫博奕(Wythoff Game)
简单的wythoff game 只需了解其奇异局势的公式:ak=k*(sqrt(5)+1)/2 bk=ak+k; #include#includeconst double tmp=((sqrt(5.0)+1)/2);using namespace std;int main(){ int a,b; while(cin>>a>>b)原创 2013-04-24 21:56:07 · 570 阅读 · 0 评论 -
hdu1907尼姆博弈Nimm Game
好吧,博弈是博大精深的,现在只是稍微了解一下基础,以后总有一天来搞搞~~!!~!~网上的讲解:(三)尼姆博奕(Nimm Game):有三堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限,最后取光者得胜。 这种情况最有意思,它与二进制有密切关系,我们用(a,b,c)表示某种局势,首先(0,0,0)显然是奇异局势,无论谁面对奇异局原创 2013-04-26 11:25:43 · 1715 阅读 · 0 评论 -
hdu2177威佐夫博弈
这题由于数据水1a掉了,我的代码只对大的一堆进行操作也能ac,事实上应该将对小的操作情况也考虑进去,但是题目没有给出输出顺序。思路:先用黄金分割乘以差值与小堆进行判段,若相等,为奇异局势,直接输出零。否者用二分搜索对某一堆的操作。 代码:#include#includeusing namespace std;const double Grs = (sqrt(5原创 2013-04-26 10:20:52 · 1103 阅读 · 0 评论
分享