HDOJ题目1848Fibonacci again and again(sg博弈,打表模板)
来源:互联网 发布:iphone锁定3g网络 编辑:程序博客网 时间:2024/05/08 03:37
Fibonacci again and again
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5039 Accepted Submission(s): 2105
Problem Description
任何一个大学生对菲波那契数列(Fibonacci numbers)应该都不会陌生,它是这样定义的:
F(1)=1;
F(2)=2;
F(n)=F(n-1)+F(n-2)(n>=3);
所以,1,2,3,5,8,13……就是菲波那契数列。
在HDOJ上有不少相关的题目,比如1005 Fibonacci again就是曾经的浙江省赛题。
今天,又一个关于Fibonacci的题目出现了,它是一个小游戏,定义如下:
1、 这是一个二人游戏;
2、 一共有3堆石子,数量分别是m, n, p个;
3、 两人轮流走;
4、 每走一步可以选择任意一堆石子,然后取走f个;
5、 f只能是菲波那契数列中的元素(即每次只能取1,2,3,5,8…等数量);
6、 最先取光所有石子的人为胜者;
假设双方都使用最优策略,请判断先手的人会赢还是后手的人会赢。
F(1)=1;
F(2)=2;
F(n)=F(n-1)+F(n-2)(n>=3);
所以,1,2,3,5,8,13……就是菲波那契数列。
在HDOJ上有不少相关的题目,比如1005 Fibonacci again就是曾经的浙江省赛题。
今天,又一个关于Fibonacci的题目出现了,它是一个小游戏,定义如下:
1、 这是一个二人游戏;
2、 一共有3堆石子,数量分别是m, n, p个;
3、 两人轮流走;
4、 每走一步可以选择任意一堆石子,然后取走f个;
5、 f只能是菲波那契数列中的元素(即每次只能取1,2,3,5,8…等数量);
6、 最先取光所有石子的人为胜者;
假设双方都使用最优策略,请判断先手的人会赢还是后手的人会赢。
Input
输入数据包含多个测试用例,每个测试用例占一行,包含3个整数m,n,p(1<=m,n,p<=1000)。
m=n=p=0则表示输入结束。
m=n=p=0则表示输入结束。
Output
如果先手的人能赢,请输出“Fibo”,否则请输出“Nacci”,每个实例的输出占一行。
Sample Input
1 1 11 4 10 0 0
Sample Output
FiboNacci
Author
lcy
Source
ACM Short Term Exam_2007/12/13
Recommend
lcy | We have carefully selected several similar problems for you: 1849 1404 1079 1907 1729
ac代码
#include<stdio.h>#include<string.h>int sg[1010],v[1010],fib[20];void fun(){int i;fib[1]=1;fib[2]=2;for(i=3;i<=20;i++)fib[i]=fib[i-1]+fib[i-2];}void getsg(){int i,j,k;for(i=0;i<=1001;i++){memset(v,0,sizeof(v));for(j=1;j<=20;j++){if(i>=fib[j])v[sg[i-fib[j]]]=1;}for(j=0;j<=1001;j++){if(!v[j])break;}sg[i]=j;}}int main(){int m,p,q,s;fun();getsg();while(scanf("%d%d%d",&m,&p,&q)!=EOF,m||p||q){ s=0;s^=sg[m]^sg[p]^sg[q];if(!s)printf("Nacci\n");elseprintf("Fibo\n");}}
0 0
- HDOJ题目1848Fibonacci again and again(sg博弈,打表模板)
- HDOJ 1848 Fibonacci again and again(sg函数模板,打表)
- HDoj-1848-Fibonacci again and again-博弈-SG函数
- HDU 1848 Fibonacci again and again(博弈 SG运用)
- HDU 1848(sg博弈) Fibonacci again and again
- hdoj 1848 Fibonacci again and again(组合博弈, sg函数)
- hdu 1848 Fibonacci again and again SG打表
- HDU 1848 Fibonacci again and again SG打表
- Fibonacci again and again(hdu1848+SG打表)
- HDOJ 1848 Fibonacci again and again(SG函数)
- HDOJ 1760 Fibonacci again and again 博弈 SG函数
- HDU 1848 Fibonacci again and again (SG函数 模板)
- HDU 1848 Fibonacci again and again【博弈:SG函数】
- HDU-1848-Fibonacci again and again【sg定理】【博弈】
- HDU 1848 Fibonacci again and again(博弈sg函数)
- HDU 1848 Fibonacci again and again (博弈,SG函数)
- HDU 1848 Fibonacci again and again(博弈 SG运用)
- 杭电1848 Fibonacci again and again(博弈-打表)
- Photoshop图片放大后有锯齿如何去除?
- 架构 BitTorrent BT服务器
- Scrapy 安装指南
- mysql主从备份在不停机的情况下新建slave从机。
- MySQL 查询结果取交集的实现方法
- HDOJ题目1848Fibonacci again and again(sg博弈,打表模板)
- 10个最好用的在线编译/调试工具
- 手机状态栏图标中的G和H各代表什么意思
- POJ 2013 Symmetric Order
- Jetty类加载
- ORA-15196 ORACLE ASM问题详解
- OC基础——函数和对象、类
- ListView下拉刷新,上拉自动加载更多
- 怎样把一个PSD文件里的图层移到另一个PSD文件里