今天在POJ做了一道博弈题..进而了解到了阶梯博弈...下面阐述一下我对于阶梯博弈的理解..

  首先是对阶梯博弈的阐述...博弈在一列阶梯上进行...每个阶梯上放着自然数个点..两个人进行阶梯博弈...每一步则是将一个集体上的若干个点( >=1 )移到前面去..最后没有点可以移动的人输..

如这就是一个阶梯博弈的初始状态 2 1 3 2 4 ... 只能把后面的点往前面放...如何来分析这个问题呢...其实阶梯博弈经过转换 可以变为Nim.. 把所有奇数阶梯看成N堆石子..做nim..把石子从奇数堆移动到偶数堆可以理解为拿走石子..就相当于几个奇数堆的石子在做Nim..( 如所给样例..2^3^4=5 不为零所以先手必败)为什么可以这样来转化?
     假设我们是先手...所给的阶梯石子状态的奇数堆做Nim先手能必胜...我就按照能赢的步骤将奇数堆的石子移动到偶数堆...如果对手也是移动奇数堆..我们继续移动奇数堆..如果对手将偶数堆的石子移动到了奇数堆..那么我们紧接着将对手所移动的这么多石子从那个偶数堆移动到下面的奇数堆...两次操作后...相当于偶数堆的石子向下移动了几个..而奇数堆依然是原来的样子...即为必胜的状态...就算后手一直在移动偶数堆的石子到奇数堆..我们就一直跟着他将石子继续往下移..保持奇数堆不变...如此做下去..我可以跟着后手把偶数堆的石子移动到0..然后你就不能移动这些石子了... 所以整个过程..将偶数堆移动到奇数堆不会影响奇数堆做Nim博弈的过程..整个过程可以抽象为奇数堆的Nim博弈...
     其他的情况...先手必输的...类似推理...只要判断奇数堆做Nim博弈的情况即可...
     为什么是只对奇数堆做Nim就可以...而不是 偶数堆 呢?...因为如果是对偶数堆做Nim...对手移动奇数堆的石子到偶数堆..我们跟着移动这些石子到下一个奇数堆...那么最后是对手把这些石子移动到了0..我们不能继续跟着移动...就只能去 破坏原有的Nim而导致胜负关系的不确定 ...所以 只要对奇数堆做Nim 判断即可知道胜负情况...
附加题目:

POJ 1704

【题意】

从左到右有一排石子,给出石子所在的位置。规定每个石子只能向左移动,且不能跨过前面的石子。最左边的石子最多只能移动到1位置。每次选择一个石子按规则向左移动,问先手是否能赢。

【分析】

我们把棋子按位置升序排列后,从后往前把他们两两绑定成一对。如果总个数是奇数,就把最前面一个和边界(位置为0)绑定。

在同一对棋子中,如果对手移动前一个,你总能对后一个移动相同的步数,所以一对棋子的前一个和前一对棋子的后一个之间有多少个空位置对最终的结果是没有影响的。

于是我们只需要考虑同一对的两个棋子之间有多少空位。

这样一来就成了N堆取石子游戏了.

HDU 4315
【题意】

有N个人爬山,山顶坐标为0,其他人的坐标按升序给出。不同的坐标只能容纳一个人(山顶不限),Alice和Bob轮流选择一个人让他移动任意步,但不能越过前面那个人。现在有一个人是king(给出id),谁能将king移动到山顶就算赢。

【分析】

考虑King的情况和上述版本几乎一致,只要把King当作普通人一样处理即可。
除了两种特殊情况:
1. 当King是第一个人时,Alice直接胜
2. 当King是第二个人且一共有奇数个人时,第一堆的大小需要减1。
因为如果king在奇数石子上,那么king前面的那一对石子k1,k2.
当对方把k1移到top时,我可以把k2移到top前的一个位置.
那么对于k2石子,对方如果碰了它,那么我肯定会把king移到top的.
所以k2也相当于是一颗废子而已,不影响最终Nim的结果.

我谈阶梯博弈(Staircase Nim)相关推荐

  1. 我谈阶梯博弈( Staircase Nim )

    今天在POJ做了一道博弈题..进而了解到了阶梯博弈...下面阐述一下我对于阶梯博弈的理解.. 首先是对阶梯博弈的阐述...博弈在一列阶梯上进行...每个阶梯上放着自然数个点..两个人进行阶梯博弈... ...

  2. 【小组专题二:博弈论入门综述(1)】NP状态 | SG函数 | 巴什博奕、威佐夫博弈、斐波那契博弈、Nim游戏、SJ定理

    博弈论综述[1] 前言 博弈与博弈论 博弈树 NP状态 SG函数(Sprague-Grundy) Sprague-Grundy Theorem 巴什博奕 Bash Game 威佐夫博弈 扩展威佐夫博弈 ...

  3. 阶梯博弈(Staircase Nim)

    阶梯博弈!!!下面阐述一下我对于阶梯博弈的理解..   首先是对阶梯博弈的阐述...博弈在一列阶梯上进行...每个阶梯上放着自然数个点..两个人进行阶梯博弈...每一步则是将一个集体上的若干个点( & ...

  4. Poj1704:staircase nim【博弈】

    题目大意:有一个无限长的一维的棋盘,棋盘上N个格子放置着棋子.两个人轮流操作,每次操作能选择其中一个棋子向左移动,但不能越过其它棋子或者两枚棋子放在同一格中,最后不能操作的人算输,问先手是否必胜? 思 ...

  5. Nim问题和阶梯Nim(staircase nim)

    Nim问题和阶梯Nim(staircase nim) Nim问题: 有若干堆石子,每堆石子的数量都是有限的,合法的移动是"选择一堆石子并拿走若干颗(不能不拿)",如果轮到某个人时所 ...

  6. 博弈问题总集第三类----Staircase Nim

    这一关我们上楼梯玩... 阶梯博弈是这样一个模型:有一个n层的台阶,每个台阶上都放有一定数量的石子.每次每个玩家可以选取某一层上任意数量的石子移动到下一层,不能操作的人输. 嗯这个问题看起来很复杂?我 ...

  7. staircase nim 经典组合游戏

    游戏开始时有许多硬币任意分布在楼梯上,共n阶楼梯从地面由下向上编号为0到n.游戏者在每次操作时可以将楼梯j(1<=j<=n)上的任意多但至少一个硬币移动到楼梯j-1上.游戏者轮流操作,将最 ...

  8. HDU3389(阶梯博弈)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=3389 题意:1-N带编号的盒子,当编号满足A>B && A非空 && ...

  9. P3480-[POI2009]KAM-Pebbles【阶梯博弈】

    正题 题目链接:https://www.luogu.com.cn/problem/P3480 题目大意 nnn个石头堆上进行Nim\text{Nim}Nim游戏,不过需要满足每次操作前后都有ai≤ai ...

最新文章

  1. linux和java_java内存和linux关系
  2. Charles模拟403/404(Web)
  3. skimage函数记录之measure.label和measure.regionprops
  4. 首发量产1亿像素,小米新机宣布11月5日发布!
  5. 服务器虚拟化nas存储服务器搭建,采用NAS架构优化VMware服务器虚拟化环境的存储管理.pdf...
  6. Ubuntu11.10 源码编译 Nginx
  7. 查看mysql某人执行了什么语句_一条 SQL 语句是如何在 MySQL 中执行的
  8. 手机电脑同屏_把手游变成端游的同屏神器,就是这款Onebit“X9”了!
  9. keil交通灯c语言,用Keilc软件设计一个交通灯程序C程序
  10. EAS中没有的核算项目新增
  11. 输出某年某月某日的c语言程序,输入某年某月某日,输出这是今年的第几天,C语言问题...
  12. 46zTree - Metro 风格的左侧菜单
  13. select下拉菜单问题
  14. 面试最后一问:你有什么问题想问我吗?
  15. 每个人都能制作的简易版狂拍灰太狼小游戏(HTML+CSS+JavaScript)
  16. 大天使之剑服务器维修公告,大天使之剑————【维护】8月17日更新维护公告...
  17. python求反余弦_python数学.acos反余弦问题
  18. 如何使用IDM分类管理下载文件
  19. 生物信息学简介 -整理综合
  20. 机器视觉为工业自动化打开“新视界”的大门

热门文章

  1. 音频接口简介(PDM/PCM/IIS/SLIMBUS)
  2. Openshift架构理解v3.11
  3. jupyter notebook打不开,Unable to create process using ‘“e:\python\python.exe“ “G:\python\Scripts\jupyt
  4. 应用层协议 —— HTTP(二)
  5. 深度学习网络结构大全
  6. HTML+CSS+JS实现 ❤️ 科技感的数字时钟特效❤️
  7. PCB工程师分享——PCB布线技巧和心得
  8. 报错解决:urllib3.exceptions.MaxRetryError
  9. SEO之了解搜索引擎
  10. 天正当前比例怎么设置_天正模型空间怎么设置(天正7图纸空间中如何改变当前比例)...