HDU 1848 Fibonacci again and again
来源:互联网 发布:java中属性是什么意思 编辑:程序博客网 时间:2024/05/19 12:17
一个简单的博弈题吧!!把SG函数的表打出来,再把3堆分开异或,就行了。
#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>using namespace std;int q[1008],w[1008],sg[1008];void Fibonacci(){ w[1]=1; w[2]=2; for(int i=3;;i++){ w[i]=w[i-1]+w[i-2]; if(w[i]>1010) break; }}int main(){ Fibonacci(); int i,j,a,b,c,sum; sg[0]=0; for(i=1;i<=1001;i++){ memset(q,0,sizeof(q)); for(j=1;w[j] <= i;j++) q[sg[i-w[j]]] =1; for(j=0;;j++) { if(!q[j]){ sg[i]=j;break; } } } while(~scanf("%d%d%d",&a,&b,&c)){ if(a==0 && b== 0 && c== 0) break; sum=sg[a]^sg[b]^sg[c]; if(sum ) printf("Fibo\n"); else printf("Nacci\n"); } return 0;}
不过自己觉得不用标准的SG函数,也靠打表也可以求出,不过写出来答案是错误的,不知道原因所在,求解。。。。 代码下:
#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>using namespace std;int q[1008],w[1008],sg[1008];void Fibonacci(){ w[1]=1; w[2]=2; for(int i=3;;i++){ w[i]=w[i-1]+w[i-2]; if(w[i]>1010) break; }}int main(){ Fibonacci(); int i,j,a,b,c,sum; memset(sg,0,sizeof(sg)); for(i=1;i<=1008;i++){ j=1; while(w[j] <= i){ if(sg[i-w[j]] == 0){ sg[i]=1; break; } j++; } } /*for(i=1;i<=100;i++) printf("%d ",q[i]); printf("\n");*/ while(~scanf("%d%d%d",&a,&b,&c)){ if(a==0 && b== 0 && c== 0) break; sum=sg[a]^sg[b]^sg[c]; if(sum ) printf("Fibo\n"); else printf("Nacci\n"); } return 0;}
坚持....
0 0
- HDU 1848 Fibonacci again and again
- hdu 1848Fibonacci again and again
- hdu 1848 Fibonacci again and again
- hdu 1848 Fibonacci again and again
- HDU 1848 Fibonacci again and again
- hdu-1848 Fibonacci again and again
- HDU 1848 Fibonacci again and again
- HDU-1848-Fibonacci again and again
- HDU 1848 -Fibonacci again and again 博弈论
- hdu 1848 Fibonacci again and again
- HDU 1848 Fibonacci again and again
- hdu 1848 Fibonacci again and again
- HDU 1848 Fibonacci again and again
- 【hdu 1848】Fibonacci again and again
- hdu 1848 Fibonacci again and again(SG)
- HDU 1848[Fibonacci again and again] 题解
- HDU 1848 Fibonacci again and again
- hdu---(1848)Fibonacci again and again
- 执行Oracle数据库安装时出错,请运行下述步骤清理环境
- 链表版本图的深度优先和广度优先遍历
- Qt, QT/E, Qtopia 的区别
- 用例子详细介绍各种字符集编码转换问题
- C++ 中struct与class的区别
- HDU 1848 Fibonacci again and again
- poj 3253 Fence repair
- DataGridView用法笔记
- servlet配置及初始化参数
- exp导出表数据为0行
- 关于请求转发和重定向(一)--- 请求转发
- ubuntu 安装svn
- java连接Excel数据库读取,写入,操纵Excel表格
- 如何实现一个简单地Filter