题目:传送门。

题意:长度为N的格子,Alice和Bob各占了最左边以及最右边K个格子,每回合每人可以选择一个棋子往对面最近的一个空格移动。最先不能移动的人获得胜利。

题解:

k=1时

很容易看出,n为奇数则后手获胜,n为偶数则先手获胜

k>1时

  如果n=2*k+1,则棋 盘中只有一个空白的格子,每次移动必须移动到当前的空白格子上。先手方可以先随意选择一颗棋子占据中间的位置,然后双方互有移动,移动过程中双方肯定都会 选择一颗在己方半场的棋子移动到对方半场里。直到后手方还剩下一颗己方半场的棋子时,先手方把占据中间的棋子移动到对方半场,此时后手方必须移动剩下的这 颗棋子到空出的中间的格子里,先手方再把最后一颗棋子移动到新空出的位置即可获胜。

  如果n>2*k+1,那么棋盘中就有了多余一个的 空白格子。如果n为奇数,先手方只要每次移动己方最靠后的一颗棋子即可获胜。并且第一次移动必须选择1号棋子,否则会让自己的棋子中间留下空白相当于把先 手让给了对方,这时对方只要采用先手策略即可获胜;如果n为偶数,那么先手方只需采用n=2*k+1时的策略在双方交会的时候保住先手即可,当然此时的第 一步还是1号棋子,否则将失去先手优势。

#include <string.h>
#include <stdio.h>
int n, k, cas = 1;
int main(){while(scanf("%d%d", &n, &k) != EOF) {printf("Case %d: ",cas++);if (k == 1) printf(n%2?"Bob\n":"Alice 1\n");else if(n == 2*k+1) printf("Alice %d\n", k);else printf("Alice 1\n");}return 0;
}

转载于:https://www.cnblogs.com/Ritchie/p/5762443.html

HDU 4387 Stone Game (博弈)相关推荐

  1. HDU 1525 类Bash博弈

    给两数a,b,大的数b = b - a*k,a*k为不大于b的数,重复过程,直到一个数为0时,此时当前操作人胜. 可以发现如果每次b=b%a,那么GCD的步数决定了先手后手谁胜,而每次GCD的一步过程 ...

  2. hdu 2177 威佐夫博弈

    题目链接:hdu 2177 威佐夫博弈水题,如果不是奇异局势需要输出走完第一步石堆的状态,先按两堆取相同石子,再按只取一堆. 可以打表解决 #include<iostream> #incl ...

  3. HDU - 4388 Stone Game II(博弈+思维)

    题目链接:点击查看 题目大意:最初有n堆石子,每堆石子的数目已知,现在有两个人轮流按照下列规则操作,不能操作的一方即为失败 首先选择一堆石子,设该堆石子目前有x个,从中拿走a个石子,剩下了k个石子,a ...

  4. hdu 2149 巴什博弈

    http://acm.hdu.edu.cn/showproblem.php?pid=2149 分析:就是巴什博弈的概念. 题目要求:对于每组数据,在一行里按递增的顺序输出Lele第一次可以加的价.两个 ...

  5. hdu 2188巴什博弈

    http://acm.hdu.edu.cn/showproblem.php?pid=2188 分析:巴什博弈. View Code // I'm lanjiangzhou //C #include & ...

  6. hdu 1907 & hdu 2509(Nim博弈)

    其实我都是一直叫它(尼美博弈) 模型: 给你N堆,每堆数目是确定的(输入),每次从一堆取一个,多者不限,最多取完一堆.有两人AB,A先手,规定最后一个取完者赢(输).问先后手哪个赢(输).(假定两个人 ...

  7. hdu 2897 巴什博弈变形

    题目来源: http://acm.hdu.edu.cn/showproblem.php?pid=2897 分析: n % (p + q) == 0 先手赢. 策略为: A 拿 q ,  B 拿任意 k ...

  8. HDU 1564 找规律博弈

    题目大意是: 从n*n的方格角落的一个起点出发,每次移到上下左右一个未曾到达过的位置,谁不能走了谁就输了 想了好久都想不出,看了大神的题解 Orz了 果然博弈不是脑残的游戏啊... 这里从起点出发,将 ...

  9. hdu 2149+hdu 1846(巴什博弈)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2149 首先介绍一下巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每 ...

  10. hdu 6015 Gameia(树上博弈)

    题目链接:hdu 6015 Gameia 题意: 给出一棵树,Alice 和 Bob 轮流操作, Alice先手, Alice的操作是选一个未染色的点将其染成白色,Bob的操作是选一个未染色的点将其染 ...

最新文章

  1. python爬微博关键字_一个简单的python爬虫实践,爬取包含关键词的新浪微博
  2. 速度超Mask RCNN四倍,仅在单个GPU训练的实时实例分割算法
  3. OREILLY Programming .NET 3.5 读书笔记之一
  4. boost::regex模块实现以编程方式生成代码片段,以便剪切并粘贴到正则表达式源中测试程序
  5. 同一个页面生成多个sessionid_web页面渲染(一)
  6. python一图带你精通time类型转换
  7. HTML简单实例加表单的显示效果
  8. c++中的构造函数和析构函数
  9. 解决“鼠标关机后仍然发光”的方法
  10. 李洪强iOS开发之XMPP
  11. 《iPhone与iPad开发实战—iOS经典应用剖析》连载三
  12. python replace替换多个字符_「Python 秘籍」字符串忽略大小写的搜索替换
  13. T - SQL(常用语句)
  14. 网络安全实验---PGP 实现邮件加密和签名
  15. python学习视频下载地址全套
  16. html 去掉右键菜单,右键菜单管理清除多余项目的方法教程
  17. 信息安全术语中英文词条对照表
  18. 计算机学院审核评估方案,计算机与数据科学学院 本科教学工作审核评估迎评工作方案...
  19. 2015年国际数学奥林匹克(IMO)试题
  20. X-Ways Forensics: 综合取证分析工具

热门文章

  1. for 循环中实现多个点击事件
  2. nginx中配置虚拟主机
  3. Maven进行Mahout编程,使其兼容Hadoop2.2.0环境运行 (转)
  4. spring中的BeanFactory和FactoryBean的区别与联系
  5. 编程科普书籍推荐(Java)
  6. 说你呢,装着JDK8,却孜孜不倦的写着 JDK6 的代码,写了3年了,JDK8的特性都没用过......
  7. VS Code 新版本重磅发布,迎来 2020 年首个重大更新!
  8. 谁说不能用 Python开发企业应用?
  9. 一个创业公司CEO的85条感悟
  10. 4亿线上用户性能保证:Linked Redliner架构解密