先浅谈博弈论。
GameGameGame
CSP-S复赛有一些与博弈论先关的题目。
比如说,策略游戏和贪吃蛇。
在这类题目中,你一般都能看到一句话:
AliseAliseAlise和BobBobBob都是足够聪明的选手。
蛇们都足够聪明。
现实生活中,也有和博弈论先关的。
比如说,石子游戏。
石子游戏,即在nnn个石子中选取1−k1-k1−k个。
最后拿不到石子的人必输。
有兴趣的可以去看天才基本法的前几集。
两个小学生拿棋子拿着拿着就染起来了,挺好玩的。
可以通过打表等方式证明,当nnn%(k+1)=0(k+1)=0(k+1)=0先手必输,否则先手必然会赢。
这就是所谓“必胜态”和“必败态”。
那么可以进行一个思考:在何种情况下,会有“必胜”的可能?
这再次牵扯到两个点:1.完全博弈与不完全博弈 2.不随机和随机。
完全博弈
举个例子:石头剪刀布,象棋,围棋。
哪些是有必胜态的,哪些是没有必胜态的?
石头剪刀布是没有的。
而象棋和围棋是有的。
再看一下setsetset。
setsetset是STLSTLSTL数据库比较有用的一个。
setsetset是一个具有去重,排序的数据结构。
头最小,尾最大。
相比priority_queue,个人认为其局限性其实更小。
而且时间复杂度同为O(logn)O(logn)O(logn)级别。
定义:
添加元素:
开头:
结尾:
//end直接指向结尾的后一个,所以一般使用的是都要减一。
或者这个:
//这个就是最后一位。
删除:
查找:(找到返回迭代器,没找到返回end())
判断是否为空:
然后是文件输入输出: