取石子游戏 - HDU 2516 博弈论
2015-05-29 15:31
288 查看
取石子游戏
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3207 Accepted Submission(s): 1871
Problem Description
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
思路:打表后发现输的全是斐波那契数。。。
AC代码如下:
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<map> using namespace std; typedef long long ll; int T,t,n,m; map<ll,int> match; void init() { ll a=1,b=1,c=2; while(c<=1e10) { match[c]=1; a=b;b=c; c=a+b; } } int main() { int i,j,k; init(); while(~scanf("%I64d",&n) && n>0) { if(match ==1) printf("Second win\n"); else printf("First win\n"); } }
相关文章推荐
- c++原生的unicode支持
- 两原则解答SAT填空题:提高速度和效率
- Coding Style注意
- Blog第一篇(于似懂非懂状态开始了我的安卓开发之路)
- 基于Bootstrap3制作响应式布局网站(三)
- 关于java的io读写,缓冲区是如何提高读写效率的?
- USB开发参考实例网站
- Android Application的作用
- Android--使用AudioRecord录音,并使用MediaPlayer播放的实例
- hdu_oj_2066 一个人的旅行
- LUA require 搜索路径指定方法
- queue-fun —— nodejs下基于Promise的队列控制模块。
- 多个Fragment切换时不重新实例化------------转
- 利用烧鹅制作简单BadUSB,插谁谁怀孕
- 事物的ACID,常用两种引擎的特点
- 初学Maven常见错误及解决方法
- 移动互联网服务器端开发课程
- kiki's game - HDU 2147 博弈论
- Jquery Validate 正则表达式实用验证代码大全
- 个人IOS技能树