题干:

1堆石子有n个,两人轮流取.先取者第1次可以取任意多个,但不能全部取完.以后每次取的石子数不能超过上次取子数的2倍。取完者胜.先取者负输出"Second win".先取者胜输出"First win".

Input

输入有多组.每组第1行是2<=n<2^31. n=0退出.

Output

先取者负输出"Second win". 先取者胜输出"First win". 
参看Sample Output.

Sample Input

2
13
10000
0

Sample Output

Second win
Second win
First win

解题报告:

关于Fibonacci博弈的证明:(这里用的是数学归纳法)  斐波那契博弈(Fibonacci Nim)

结论就是,如果这个数是Fibonacci数,则先手败后手胜。

代码很简单,至于为什么二分比暴力枚举慢,我就不知道了。(一个15ms,一个0ms)。

AC代码:

#include<bits/stdc++.h>using namespace std;int f[46];int main()
{int n;f[1]=1;f[2]=2;for(int i = 3; i<=45; i++) {f[i] = f[i-1] + f[i-2];}while(~scanf("%d",&n) && n) {if(binary_search(f+1,f+46+1,n) == 1) puts("Second win");else puts("First win");}return 0 ;
}

【HDU - 2516 】取石子游戏 (Fibonacci博弈)相关推荐

  1. hdu 2516 取石子游戏

    取石子游戏 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  2. HDU 2516 取石子游戏 斐波纳契博弈

    斐波纳契博弈: 有一堆个数为n的石子,游戏双方轮流取石子,满足: 1)先手不能在第一次把所有的石子取完: 2)之后每次可以取的石子数介于1到对手刚取的石子数的2倍之间(包含1和对手刚取的石子数的2倍) ...

  3. HDU 2516 取石子游戏 斐波那契博弈

    传送门 背下来的一个概念题没什么好说的 有一堆石子,两个顶尖聪明的人玩游戏,先取者可以取走任意多个,但不能全取完,以后每人取的石子数不能超过上个人的两倍,当石子数为斐波那契数 ,先手输,反之先手赢 # ...

  4. HDU2516 取石子游戏【博弈】

    取石子游戏 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  5. POJ1067 HDU1527 取石子游戏【博弈】

    取石子游戏 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  6. 两人取石子游戏 组合数学-博弈问题

    取石子游戏是一个古老的博弈游戏,据说是发源于中国,它是组合数学领域的一个经典问题.它有许多不同的玩法,基本上是两个玩家,玩的形式是轮流抓石子,胜利的标准是抓走了最后的石子. 玩家设定: 先取石子的是玩 ...

  7. bzoj 1413: [ZJOI2009]取石子游戏(博弈+DP)

    1413: [ZJOI2009]取石子游戏 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 711  Solved: 470 [Submit][Sta ...

  8. 【XSY3949】取石子游戏(博弈,线段树)

    题面 取石子游戏 题解 我们把一个有 nnn 个石子, Alice 每次能拿 aaa 个, Bob 每次能拿 bbb 个的堆称为状态 (n,a,b)(n,a,b)(n,a,b).石子数太大的时候不利于 ...

  9. “美登杯”上海市高校大学生程序设计邀请赛(华东理工大学) 小花梨的取石子游戏(博弈)

    Description 小花梨有?堆石子,第?堆石子数量为??,?堆石子顺时针编号为1 − ?(如图) . 游戏将进行?轮,每轮游戏单独进行,互不干扰,每轮初始时第?堆石子数目为??. 第?轮从编号为 ...

  10. HDU - 1527 取石子游戏(威佐夫博弈)

    题目链接:点击查看 题目大意:有两堆石子,两个人轮流取,每次可以取一堆中任意多的石子,或者取两堆中数量相同的石子,先将石子取完者获胜,若先手获胜输出1,后手获胜输出0 题目分析:这个题目涉及到了威佐夫 ...

最新文章

  1. SQL Server 2008中SQL增强之三:Merge(在一条语句中使用Insert,Update,Delete)
  2. 关于栈的理解(读书笔记)
  3. 运营商竞速搭建手机支出公司
  4. 使用G1后报错-CircuitBreakingException: [parent] Data too large
  5. 使用lamba中stream 进行分组统计
  6. 计算机应用昨早领域,计算机应用-第1章.ppt
  7. 线索化二叉树(代码 、分析 、汇编)
  8. MachineLearning(5)-去量纲:归一化、标准化
  9. 计算机工程专业毕业,新加坡国立大学计算机工程专业毕业生亲临介绍
  10. Linux中:chmod命令详细解释
  11. Ubuntu 14.04 LTS 安装 文泉驿微米黑 字体到android studio
  12. 名词用作动词举例_名词作动词的句子
  13. 【Adobe Premiere Pro 2020】pr2020文字与图形的关键帧制作说明、各类字体添加和字幕创建说【包含动态字幕】、特效添加说明【混合视频剪辑】
  14. HTML-----图像,超链接,锚链接,网页布局
  15. Python提取信息测试
  16. java 宝箱概率问题
  17. 计算机行知行业英语教材,“三教”改革的先声——《行知行业英语》
  18. 关于JavaScript中 “Uncaught TypeError: date.getDay is not a function“的问题
  19. 解决mysql 服务无法启动问题:Can't find messagefile 'D:\ ools\mysql-5.6.25-winx64\share\errmsg.sys'...
  20. 【渝粤教育】电大中专跨境电子商务理论与实务 (22)作业 题库

热门文章

  1. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第25篇]使用特殊的素数定义GF(p)和GF(2^n)的方法
  2. [Leedcode][JAVA][面试题 01.07][找规律][旋转数组]
  3. 游戏服务器红点系统,Unity简易的红点系统RedPoint System
  4. idea中java文件怎么运行_Java入门基础篇-如何在Java中创建只读文件
  5. java开发cgi_編寫CGI小結(Java)
  6. vs2013编译osg缺少mfc120d.lib
  7. VMware Workstation网络连接的三种模式
  8. python十条建议_十条建议帮你提高Python编程效率
  9. java注解中可使用对象_Java注解(二):实战 - 直接使用对象列表生成报表...
  10. java 匿名内部类 百科_java匿名内部类具体概念是什么,在什么地方用到?