Boapath

   :: 首页  :: 新随笔  ::  ::  :: 管理

随笔分类 -  博弈论

摘要:1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 mapvis; 8 bool obious(int x){ 9 int cnt = 0;10 while(x>0){11 if(x%2)cnt++;12 x /= 2;13 }14 if(cnt%2) return true;15 return false;16 }17 int string_int(string x){18 int ans = 0;19 ... 阅读全文
posted @ 2014-01-19 11:55 Boapath 阅读(560) 评论(0) 推荐(0)

摘要:题意:有n堆,2个人,每次可以从某1堆中取出任意个(至少1个),或者把一堆分成2个小堆。题目分析: 一开始看到把1堆分成很多堆,我还有点小激动啊!可是刚准备写就发现,每一堆的可能石子数居然那么大(2^31-1)!坑爹啊!记忆化搜索肯定不行,数组都开不下。 ……然后悲催的我,在昨天的停电+证明的摧残下又继续想了想。 (╯°Д°)╯( ┻━┻) !想不出来怎么换一种算法了! 然后我又去看解题报告了!!! T T…… 最后居然是打表啊!打表啊!(╯°Д°)╯( ┻━┻(又是打表!还让不让人活了!))! 然后我苦逼地打了一张表…… 贴出打的表吧…… 1 #inc 阅读全文
posted @ 2014-01-18 14:47 Boapath 阅读(713) 评论(0) 推荐(0)

摘要:题意:一个n*n的棋盘,一开始的时候棋子在一个角落的格子里,每次可以移动棋子到上下左右的相邻格子中(不能超过边界,而且不能走走过的格子);当不能走时,败。现在8600先走,问最后谁赢。题目分析: 想了几个小时,然后没有打表,所以去搜了解题报告。 最后的结论很简洁,所以先列出结论吧: 该结论基于一个前提:还没走过的格子数为奇数时,先手胜。 所以: n为偶数时,除去开局时棋子自己占的一格,余下n*n-1格,为奇数,先手胜。 同理,n为奇数时,后手胜。 以上。 由于在下(有时候)有点固执,所以很多东西并不想只知道结论,而想知道为什么。所以我搜了很多份解题报告,... 阅读全文
posted @ 2014-01-17 22:15 Boapath 阅读(863) 评论(0) 推荐(0)

摘要:题目大意:有2个数,2个人轮流把大的数(设为a)减去小的数(设为b)的倍数(不能超过大的数),一直到有一方能把某个数减到0,该方获胜。Stans先走,问最后赢的是谁。题目分析:每次减去b的倍数,那么直到不能减b(再减去1个b都会变成负数)时,就进行下2个数的“新”一轮减法了。什么时候这两个数(a,b)不能减(原本b不作为减数)?当a'小于b的时候,其实也就是当a减去(a/b)的时候,这时候a' = a%b。当局面变成(a',b)时,事实上,大数变成了b,小数变成了a'。是不是觉得很熟悉?对的,这不就是GCD么?然后每次从大的数(a)中减去x个小的数(b),其实很 阅读全文
posted @ 2014-01-17 12:40 Boapath 阅读(622) 评论(0) 推荐(0)

摘要:前言:博弈论博大精深。 所谓平等博弈只是博弈论,应该说是组合博弈的一个分支。 本来还想做一篇详细基础解说向,但是实在嫌麻烦,所以我要强调一下本文属于补充备注类型,甚至可以说是记录的草稿。建议看了推荐的那些东西再来看本文作为一个补充吧。 总之,有什么说的不对的,还请大家不惜余力指出。推荐: http://blog.csdn.net/acm_cxlove/article/details/7854526cxlove总结得很好。最重点是里面的一些论文+"Game Theory"那篇。 http://www.cnblogs.com/kuangbin/archive/2011/08/2 阅读全文
posted @ 2014-01-16 20:24 Boapath 阅读(742) 评论(0) 推荐(0)