Fibonacci again and again

利用SG函数求出每一堆的SG值,如果三个值的异或和为零 先手必败态,否则,先手必胜态。

 #include <bits/stdc++.h>
#define scanf_d(a) scanf("%d",&a)
#define scanf_dd(a,b) scanf("%d%d",&a,&b)
#define maxn 1000+10
#define N 20
//#define DEBUG
using namespace std;
int s[maxn],sg[maxn],fib[N]; void getsg( int n) {
memset(sg,,sizeof(sg));
for ( int i = ;i <= n; i++) {
memset(s,,sizeof(s));
for ( int j = ; fib[j] <= i && j <= N; j++) s[sg[i-fib[j]]]=;
for ( int j = ; ; j++) { if(!s[j]) { sg[i] = j; break; } }
}
} int main()
{
#ifdef DEBUG
freopen("Text.txt","r",stdin);
#endif // DEBUG
int n,m,k;
fib[] = fib[] = ;
for( int i = ; i <= ; i++) fib[i] = fib[i-] + fib[i-];
getsg();
while(~scanf("%d%d%d",&n,&m,&k),m||n||k) {
if(sg[n]^sg[m]^sg[k]) puts("Fibo");
else puts("Nacci");
}
return ;
}

SG函数和SG定理的更多相关文章

  1. SG函数和SG定理【详解】

    在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜点和必败点的概念:        P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败.        N点:必胜点 ...

  2. (转载)--SG函数和SG定理【详解】

    在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜点和必败点的概念:        P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败.        N点:必胜点 ...

  3. 组合游戏 - SG函数和SG定理

    在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜点和必败点的概念:        P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败.        N点:必胜点 ...

  4. SG函数和SG定理(Sprague_Grundy)

    一.必胜点和必败点的概念 P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败.       N点:必胜点,处于此情况下,双方操作均正确的情况下必胜. 必胜点和必败点的性质:     ...

  5. SG函数&&SG定理

    必胜点和必败点的概念:        P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败.        N点:必胜点,处于此情况下,双方操作均正确的情况下必胜. 必胜点和必败点的 ...

  6. SG定理与SG函数

    一个蒟蒻来口胡$SG$函数与$SG$定理. 要是发现有不对之处望指教. 首先我们来了解一下$Nim$游戏. $Nim$游戏是公平组合游戏的一种,意思是当前可行操作仅依赖于当前局势. 而经典$Nim$游 ...

  7. SG函数 专题练习

    [hdu1536][poj2960]S-Nim 题意 题意就是给出一个数组h,为每次可以取石子的数目. 然后给你n堆石子每堆si.求解先手能不能赢? 分析 根据\(h\)数组预处理出\(sg[i]\) ...

  8. 博弈论进阶之SG函数

    SG函数 个人理解:SG函数是人们在研究博弈论的道路上迈出的重要一步,它把许多杂乱无章的博弈游戏通过某种规则结合在了一起,使得一类普遍的博弈问题得到了解决. 从SG函数开始,我们不再是单纯的同过找规律 ...

  9. Wannafly挑战赛23 T2游戏 SG函数

    哎,被卡科技了,想了三个小时,最后还是大佬给我说是\(SG\)函数. \(SG\)函数,用起来很简单,证明呢?(不可能的,这辈子都是不可能的) \(SG\)定理 游戏的\(SG\)函数就是各个子游戏的 ...

随机推荐

  1. Lambda为什么又称为匿名函数

    用法: 有的类,里面只有一个方法,几行代码,只使用一次,以后再不会用到这个类,那就不值当的单独创建一个类,此时使用匿名内部类 一.传统方式 1.接口 2.接口实现类 创建一个类,这个类可能被多次使用, ...

  2. Lumen框架使用Redis与框架Cache压测比较

    使用命令 ab -c 20000 -n 100000 'http://127.0.0.1:9050/v1/api.store.xxx'进行压测,并同时进行了交叉测试,结果如下: 高并发情况下数据目前没 ...

  3. java编写ID3决策树

    说明:每个样本都会装入Data样本对象,决策树生成算法接收的是一个Array<Data>样本列表,所以构建测试数据时也要符合格式,最后生成的决策树是树的根节点,通过里面提供的showTre ...

  4. select、poll、epoll的区别

    本文写于2017-02-26,从老账号迁移到本账号,原文地址:https://www.cnblogs.com/huangweiyang/p/6444746.html select.poll.epoll ...

  5. ecplise中设置字符编码

    ecplise 设置 1 ecplise编码格式 右键 在general-workspace- text file encoding 选择utf-8 2 jsp文件编码格式 web-jspfile-e ...

  6. java文件上传 关键代码

    文件上传 ##前台: form表单submit提交,form增加样式 enctype="multipart/form-data" method="post"; ...

  7. SharePoint Framework 基于团队的开发(二)

    博客地址:http://blog.csdn.net/FoxDave 本篇介绍SPFx项目的一般开发流程.SharePoint Framework基于开源的工具链,也遵循开源技术栈中其他项目的开发流程. ...

  8. Oracle学习DayFour(高级子查询)

    一.高级子查询 1.多列子查询 定义:主查询与子查询返回的多个列进行比较 多列子查询中的比较分为两种:成对比较:不成对比较 实例:查询与141号或174号员工的manager_id和departmen ...

  9. 对于一个段错误(核心已转储)问题的解答,错误的英文翻译是segment fault(core dumped)

    笔者在学习ROS的时候遇到的这个问题,使用的系统是ubuntu16.04,ROS版本是kinetic,在运行小海龟程序的时候突然打不开海龟界面的程序节点turtlesim-node,四处寻找答案未果, ...

  10. 一个简单可靠的CRC 计算程序

    //注:此函数主要的特点为准,快,体积小,非常适合于8位单片机 int16 crc_1021(int16 old_crc, int8 data) {   int16 crc;   int16 x;   ...