nyoj 358 取石子(五)(Fibonacci博弈)(博弈——找规律)
来源:互联网 发布:jsonarray解析json 编辑:程序博客网 时间:2024/06/06 14:17
取石子(五)
题目描述
himdd最近很想玩游戏,于是他找到acmj和他一起玩,游戏是这样的:有一堆石子,两个人轮流从其中取走一定的石子,取走最后所有石子的人为赢家,不过得遵循如下规则:
1.第一次取不能取完,至少取1颗.
2.从第二次开始,每个人取的石子数至少为1,至多为对手刚取的石子数的两倍。
himdd事先想知道自己会不会赢,你能帮帮他吗?(每次himdd先手)
输入
有多组测试数据,每组有一个整数n(2<=n<2^64);
输出
himdd会赢输出Yes,否则输出No;
样例输入
2
5
6
样例输出
No
No
Yes
结论:当n为斐波那契数时,先手必败
证明博客:ac-data
代码:
#include<stdio.h>#include<math.h>#include<string.h>#include<algorithm>using namespace std;typedef long long LL;LL f[95];//long long范围内的斐波那契数有90多个void init(){ int i; f[0]=0; f[1]=1,f[2]=1; for(i=3; i<95; ++i) f[i]=f[i-1]+f[i-2];}int main(){ init(); LL n; while(~scanf("%lld",&n)) { int flag=0; for(int i=0; i<95&&f[i]<=n; ++i) if(f[i]==n) { flag=1; break; } if(flag) printf("No\n"); else printf("Yes\n"); } return 0;}
阅读全文
1 0
- nyoj 358 取石子(五)(Fibonacci博弈)(博弈——找规律)
- NYOJ 题目358 取石子(五)(博弈)
- hdu 2516 取石子游戏(博弈,找规律)
- NYOJ题目358 取石子(五)hdu题目2516 取石子游戏 Fibonacci’s Game(斐波那契博弈)
- NYOJ 23 —— 取石子(一)【博弈】
- NYOJ 833 取石子(七)【博弈】
- NYOJ 135 取石子(二)(博弈)
- nyoj 取石子(七) 环形博弈
- nyoj 2359 巴什博弈?(博弈——找规律)
- nyoj-358 取石子(五)(斐波那契博弈)
- NYOJ 358 取石子(五)(斐波那契博弈)
- NYOJ 358 取石子(五)(斐波那契博弈)
- 博弈(取石子)专题
- 博弈(各类取石子)
- 取石子游戏(博弈)
- hdu3951(博弈)找规律
- nyoj 385-取石子(五)(斐波那契博弈问题)
- Nyoj-23 取石子(一) (博弈游戏)
- J
- [JSOI2008]最大数maxnumber
- codeforces—— 869E —— The Untended Antiquity
- redis命令行基本操作
- centOS 关闭防火墙
- nyoj 358 取石子(五)(Fibonacci博弈)(博弈——找规律)
- Tensorflow实例:Inception-v3模型
- docker的内核依赖与简单构建
- esp8266(一)esp8266和电脑在同一局域网中传输数据
- java文件操作
- python--leetcode695. Max Area of Island
- 常用正则表达式
- Weibo单节点爬虫设计
- 如何与爱发脾气的人相处