您的位置:首页 > 其它

对博弈的认知,及刷题总结

2016-03-11 22:17 351 查看
博弈主要有两种,一种是bash博弈,另一种是nim博弈。

对于巴士博弈,基本定义见百度文库,其基本题目类型是:只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。

最简单的题目见杭电2188
2188,杭电2149,杭电1846都是较为简单的巴士博弈题目。而杭电1517和2897,则相对有些变化,因为它的类型从区间【1,n】变成了【m,n】,但是其本质上还是找临界点,如果对巴士博弈理解了,就不会觉得很难了。这类题目主要是根据临界点判断是先手赢还是后手赢,然后扩展一下,就是最后一次抓的个数。

妮姆博奕则是对几堆“石子”取,直到取完。基本概念见nim游戏,基本题目类型是:有若干堆石子,每堆石子的数量都是有限的,合法的移动是“选择一堆石子并拿走若干颗(不能不拿)”,如果轮到某个人时所有的石子堆都已经被拿空了,则判负(因为他此刻没有任何合法的移动)。杭电题目有1849、1850等等,一般都是异或运算(虽然我也不知道为什么用异或运算),然后再加上什么限制条件什么的。

ans^=x 为循环算出最后结果是否为0,然后再根据题目条件完善代码即可!

待完善……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: