#include<stdio.h>
#include<string.h>
#include<stdlib.h>const int MAXN = 1005;
int fib[MAXN], e[MAXN], h[20];void calcFib()
{int i;fib[1] = 1, fib[2] = 2;for(i = 3; i <= 16; i ++){fib[i] = fib[i - 1] + fib[i - 2];}
}/*求SG值*/
void calcE()
{int i, j, k;e[0] = 0, e[1] = 1;for(i = 2; i <= 1000; i ++){memset(h, 0, sizeof h);for(j = 1; fib[j] <= i; j ++){h[e[i - fib[j]]] = 1;}for(j = 0; j <= 15; j ++){if(h[j] == 0) //当j为必败态
            {e[i] = j;break;}}}
}int main()
{int m, n, p;calcFib();calcE();while(scanf("%d%d%d", &m, &n, &p), m || n || p){puts(((e[m] ^ e[n] ^ e[p]) == 0) ? "Nacci" : "Fibo"); //异或为0,先手必败
    }return 0;
}

转载于:https://www.cnblogs.com/Yu2012/archive/2012/10/20/2731998.html

HDU 1848 Fibonacci again and again相关推荐

  1. HDU 1848 Fibonacci again and again(博弈)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1848 题意:游戏规则如下: 1.  这是一个二人游戏; 2.  一共有3堆石子,数量分别是m, n, ...

  2. (step8.2.6)hdu 1848(Fibonacci again and again——组合博弈)

    题目大意:输入3个整数m,n,p,分别表示3堆石头中的石头个数 解题思路: 1)斐波那契数列的第16个数fib[16] == 1597 2)(sg[m]^sg[n]^sg[p])   .一定要加括号, ...

  3. 题解——HDU 1848 Fibonacci again and again

    一道组合游戏的题目 SG函数的板子题 预处理出SG函数的值然后回答询问即可 代码 #include <cstdio> #include <algorithm> #include ...

  4. SG函数入门HDU 1848

    SG函数 sg[i]为0表示i节点先手必败. 首先定义mex(minimal excludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非负整数.例如mex{0,1,2,4}=3. ...

  5. 斐波那契数列大数的压位c语言,HDU 1568 Fibonacci(大数前4位)

    分析:x=1234567.求其前四位数: log10(x)=log10(1.234567)+6. 所以1.234567=10^(log10(x)-6). 1234 =(int) 10^(log10(x ...

  6. 【hdu 1848】Fibonacci again and again

    Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s) ...

  7. hdu 1848(Fibonacci again and again)(SG博弈)

    Fibonacci again and again Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Jav ...

  8. Fibonacci again and again HDU - 1848(尼姆博弈+SG函数的运用+SG函数详解)

    题意: 给出三堆石子(m,n,p个),两人每次只能取斐波那契数f[i]个,最先取光所有石子者取胜 题目: 任何一个大学生对菲波那契数列(Fibonacci numbers)应该都不会陌生,它是这样定义 ...

  9. HDU 1568 Fibonacci【求斐波那契数的前4位/递推式】

    Fibonacci Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Proble ...

最新文章

  1. python 学习笔记 运算符优先级(8)
  2. linux删除新建的磁盘分区,Fixmbr,删除磁盘分区,新建磁盘分区,等待正式Ubuntu...
  3. android(cm11)状态栏源码分析(一)
  4. 7-67 使用二维数组实现Matrix(矩阵)。 (60 分)
  5. finalize方法_final,finally,finalize三者的含义和区别
  6. Java 几种常用 JSON 库性能比较
  7. C#中的委托是什么?事件是不是一种委托?
  8. 理想汽车4月交付5539辆 累计交付51715辆
  9. 设计模式之单例模式8种实现方式,其一:饿汉式-静态常量饿汉式
  10. .NET_.NET 部署问题
  11. 测试网站集群节点的页面访问是否正常
  12. [leetcode]Unique Paths
  13. Comparable与Comparator对象比较
  14. Python爬虫 西刺代理IP的获取 代理IP
  15. 2022-2028年中国位置大数据行业市场专项调查及投资前景分析报告
  16. Cadence PSpice 仿真3: 电容器充放电瞬态仿真图文教程
  17. win7虚拟机VCMI无法自动安装驱动程序
  18. c++游戏我的世界1世界觉醒预告
  19. 【mysql】图文展示Mysql锁
  20. 苹果无需越狱了!通过苹果签名轻松安装IPA文件

热门文章

  1. 10.Azure应用程序网关(上)
  2. 【Excle数据透视表】如何创建非共享缓存的数据透视表
  3. javascript中的链表结构—双向链表
  4. 集合框架(泛型概述和基本使用)
  5. centos 6.5 搭建lnmp环境
  6. newlisp 接受jenkins带空格的参数
  7. Android Studio导入github项目详解
  8. [LeetCode] Majority Element
  9. 正则表达式——常用元字符
  10. Oracle中判断空游标的方法