今天寒假总结测试,呵呵,做出了史上最烂的一次比赛,只过了三道题,简直是无语死自己了,哎,还是自己不行啊,本题是卡了我最长时间的题,对,就是这坑爹的博弈论。题目在下:
Alice and Bob decide to play a funny game. At the beginning of the game they pick n(1 <= n <= 10 6) coins in a circle, as Figure 1 shows. A move consists in removing one or two adjacent coins, leaving all other coins untouched. At least one coin must be removed. Players alternate moves with Alice starting. The player that removes the last coin wins. (The last player to move wins. If you can’t move, you lose.)

Figure 1

Note: For n > 3, we use c1, c2, …, cn to denote the coins clockwise and if Alice remove c2, then c1 and c3 are NOT adjacent! (Because there is an empty place between c1 and c3.)

Suppose that both Alice and Bob do their best in the game.
You are to write a program to determine who will finally win the game.
Input
There are several test cases. Each test case has only one line, which contains a positive integer n (1 <= n <= 10 6). There are no blank lines between cases. A line with a single 0 terminates the input.
Output
For each test case, if Alice win the game,output “Alice”, otherwise output “Bob”.
Sample Input
1
2
3
0
Sample Output
Alice
Alice
Bob
题意:Alice和bob两个人玩拿硬币的游戏,把多个硬币围成一圈放在一起,每次只能拿一个或者是连着的两个(真tm会玩),最后一个拿完的那个人获得胜利。
吐槽:第一次做这题时本以为是道类似抢20那种游戏的题,结果两分钟搞完,一个大大的WA啊,仔细读完题之后才知道,原来只有是当硬币没有两个连接着的硬币是就没法拿两个。结果又被我理解为搜索题了,每次有几种状态,结果码了50多行直接就写不下去了。说实话,这题考察哪有数据结构和算法啊,真是想死的心都有了
正确思路:从样例中可以知道,是Alice先拿,当n > 3时,Alice拿过后环就会断裂成一条链,如果剩下的是奇数个,这时Bob直接从中间拿一个就可以把整条链分成完全相等的两部分了,如果是偶数就拿两个。然后Alice如果从任何一个链中拿一个,Bob就从另一个链中拿一个,Alice拿俩,Bob也拿俩。无论Alice怎么拿,Bob总是从另一条链中也怎么拿,所以到最后一定是Bob赢。(真tm好计谋啊)
代码直接就是判断n是否大于3就行了。哎无语啊。

POJ-2484 A Funny Game (坑爹的博弈论)相关推荐

  1. poj 2484 A Funny Game

    题目:http://poj.org/problem? id=2484 一,题意: n个硬币围成一个圈,Alice与Bob轮流从圈中取硬币.每次能够取一枚或者连续的两枚. 硬币取走后留下的空位不用填补, ...

  2. 【POJ】1067 取石子游戏(博弈论)

    Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后 ...

  3. 【POJ 2484】A Funny Game(对称博弈)

    题意描述:有一个n个硬币摆成的环,Alice和Bob每次从里面取出一个或两个硬币,Alice先手,谁取到最后一个硬币谁就赢. 解题思路:这是一道对称博弈问题,如果硬币的数量小于等于2,Alice可以一 ...

  4. 博弈论问题,弱弱的分析

    由于上次某人出的,应该说是借鉴的一道博弈论的题目,,感觉到自己的完全空白,,所以这次去网上看了好几篇文章,写下自己的心得体会 我看到网上很多人都是以nim的游戏开始介绍,然后讲SG值,mex函数,还有 ...

  5. 各种常见的博弈论 + 简单例题

    斐波那契博弈 有一堆个数为n(n>=2)的石子,游戏双方轮流取石子,规则如下: 1)先手不能在第一次把所有的石子取完,至少取1颗: 2)之后每次可以取的石子数至少为1,至多为对手刚取的石子数的2 ...

  6. python list去重时间复杂度_List集合去重的一种方法 z

    需要对一个List集合去重,情况是该集合中会出现多个Name属性值相同的,但是其他属性值不同的数据. 在这种情况下,需求要只保留其中一个就好. 我觉得遍历和HashSet都不是我想要的,便采用了一下方 ...

  7. (转载)--SG函数和SG定理【详解】

    在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜点和必败点的概念: P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败. N点:必胜点,处于此情况下,双方操作均正 ...

  8. 组合博弈游戏 - SG函数和SG定理

    转载来自:http://blog.csdn.net/luomingjun12315/article/details/45555495 在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜 ...

  9. 组合游戏 - SG函数和SG定理

    在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜点和必败点的概念: P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败. N点:必胜点,处于此情况下,双方操作均正 ...

最新文章

  1. Go 语言编程 — Cobra 指令行工具
  2. android中的 listview,Android中ListView的初步认识(一)
  3. 漫画:学习中台,看这篇就够了
  4. 【拼爹坑爹不比爹】深入理解css中position属性及z-index属性
  5. (4)建立一个标准尺寸的平面,并对其进行着色贴图、拉伸一定的厚度
  6. 锐捷Linux客户端连接校园网
  7. 部队计算机操作使用教案,计算机基础教案2(键盘鼠标操作).doc
  8. java 找不到符号变量_java 编程中出现的 找不到符号 的问题
  9. 什么是百度权重 百度指数词
  10. 皮皮虾技术三面,我的面试经验与总结分享
  11. CSS奇思妙想—使用 mask 实现视频弹幕人物遮罩过滤
  12. 前端程序员福利 利用node写接口
  13. php7反序列化问题,PHP7:反序列化漏洞案例及分析
  14. centos安装NIS
  15. Android SDK 完整版
  16. springboot大学生兼职网站毕业设计源码311734
  17. 局域网网络流量监控_18个监控网络带宽的Linux命令行工具
  18. Oracle Database DRA 不支持11gR2版本的RAC
  19. HTML效果图谷歌打不开,关于谷歌浏览器打不开Axure原型的HTML问题解决
  20. 天若有情天亦老月如无恨月长圆

热门文章

  1. 高级工程师职称申报到底需要参加答辩不?
  2. 乔布斯对2005年斯坦福大学毕业生演讲全文
  3. google浏览器被2345地址更改
  4. 【wasp的算法笔记】目录
  5. ADAU1452的A2B寄存器和时序图配置
  6. 四川交投智慧高速新基建科研基地正式落成
  7. 将cooledit作为一个音频信号发生器(http://www.zsjys.net/JYJY/ShowArticle.asp?ArticleID=64)
  8. 卡特320新款智能机中文版电路图
  9. 去除Reloaded modules: lib, lib.utils, lib.metrics, lib.data_preparation, model, model.model_config
  10. Vite打包项目提示“some chunks are larger than 500 kib....“