题目链接

\(Description\)

1堆石子有n个。两人轮流取。先取者第1次可以取任意多个,但不能全部取完。以后每次取的石子数不能超过上次取子数的2倍,取完者胜。问谁能赢。

\(Solution\)

斐波那契博弈(Fibonacci Nim)

结论: 后手必胜当且仅当石子数为Fibonacci数


证明见: http://blog.csdn.net/dgq8211/article/details/7602807

#include <cstdio>
const int INF=0x7fffffff; int cnt;
long long f[2333];
int Find(int x)
{
int l=1,r=cnt-1,mid;
while(l<r)
if(f[mid=l+r>>1]>=x) r=mid;
else l=mid+1;
return l;
} int main()
{
f[0]=f[1]=1;
for(cnt=2; f[cnt-1]<=INF; ++cnt) f[cnt]=f[cnt-1]+f[cnt-2];
int n;
while(scanf("%d",&n),n)
puts(n==f[Find(n)]?"Second win":"First win");
return 0;
}

HDU.2516.取石子游戏(博弈论 Fibonacci Nim)的更多相关文章

  1. HDU.2516 取石子游戏 (博弈论 斐波那契博弈)

    HDU.2516 取石子游戏 (博弈论 斐波那契博弈) 题意分析 简单的斐波那契博弈 博弈论快速入门 代码总览 #include <bits/stdc++.h> #define nmax ...

  2. hdu 2516 取石子游戏 博弈论

    很显然的nim游戏的变形,很好找规律 先手败:2,3,5,8,13…… 其他先手胜.即满足菲波拉数列. 代码如下: #include<iostream> #include<stdio ...

  3. HDU 2516 取石子游戏 (博弈论)

    取石子游戏 Problem Description 1堆石子有n个,两人轮流取.先取者第1次能够取随意多个,但不能所有取完.以后每次取的石子数不能超过上次取子数的2倍.取完者胜.先取者负输出" ...

  4. hdu 2516 取石子游戏 (Fibonacci博弈)

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

  5. HDU 2516 取石子游戏(斐波那契博弈)

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

  6. HDU 2516 取石子游戏(FIB博弈)

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

  7. HDU 2516 取石子游戏(斐波那契)

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

  8. hdu 2516 取石子游戏 (博弈)

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

  9. HDU 2516 取石子游戏 (找规律)

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

随机推荐

  1. BFGS算法(转载)

    转载链接:http://blog.csdn.net/itplus/article/details/21897443 这里,式(2.38)暂时不知如何证出来,有哪位知道麻烦给个思路.

  2. 六、regularized logisitic regssion练习(转载)

    转载链接:http://www.cnblogs.com/tornadomeet/archive/2013/03/17/2964858.html 在上一讲Deep learning:五(regulari ...

  3. 命令查看WebSphere MQ运行状态

    参考:https://wenku.baidu.com/view/34e40e2ffd0a79563c1e72b9.html 一.查看队列管理器运行状态 # dspmq 显示结果中QMNAME表示MQ队 ...

  4. java中不同类型的数值占用字节数

    在Java中一共有8种基本数据类型,其中有4种整型,2种浮点类型,1种用于表示Unicode编码的字符单元的字符类型和1种用于表示真值的boolean类型.(一个字节等于8个bit) 1.整型 类型 ...

  5. igmpproxy启动时错误:There must be at least 2 Vif's where one is upstream.

    openwrt 下启动igmpproxy时报错 # /etc/init.d/igmpproxy start Not starting instance igmpproxy::instance1, an ...

  6. hostapd 和 wap_supplicant

    hostapd : user space daemon for access points, including, e.g., IEEE 802.1X/WPA/EAP Authenticator fo ...

  7. OA系统高性能解决方案(史上最全的通达OA系统优化方案)

    序: 这是一篇针对通达OA系统的整体优化方案,文档将硬件.网络.linux操作系统.程序本身(包括web和数据库)以及现有业务有效结合在一起,进行了系统的整合优化.该方案应用于真实生产环境,部署完成后 ...

  8. zabbix系列(八)zabbix添加对web页面url的状态监控

    通过zabbi做web监控不仅仅可以监控到站点的响应时间,还可以根据站点返回的状态码,或者响应时间做报警 1.对需要监控的主机添加web监控   在configuration—hosts 中打开主机列 ...

  9. PYTHON-匿名函数,递归与二分法,面向过程编程

    """匿名函数1 什么是匿名函数 def定义的是有名函数:特点是可以通过名字重复调用 def func(): #func=函数的内存地址 pass 匿名函数就是没有名字的 ...

  10. C#面向对象(基础知识)

    面向对象:就是CLASS,class就是用户自定义类型: class:用户自定义引用类型:三大特点:封装.继承.多态: 解决方案中右键添加class:class内可以写结构体,枚举,函数: C#中各个 ...