#SG函数#HDU 1848 Fibonacci again and again
分析
可取状态只能是斐波那契数,求出SG函数
然后判断三个数sg函数异或和不为0先手必胜
代码
#include <cstdio>
#include <cctype>
#define rr register
using namespace std;
const int p[15]={1,2,3,5,8,13,21,34,55,89,144,233,377,610,987};
const int N=1011; int sg[N],v[N];
inline signed iut(){
rr int ans=0; rr char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();
return ans;
}
signed main(){
for (rr int i=1;i<N;++i){
for (rr int j=0;j<15&&p[j]<=i;++j)
v[sg[i-p[j]]]=1;
for (;v[sg[i]];++sg[i]);
for (rr int j=0;j<15&&p[j]<=i;++j)
v[sg[i-p[j]]]=0;
}
while (1){
rr int n=iut(),m=iut(),k=iut();
if (!n&&!m&&!k) break;
if (sg[n]^sg[m]^sg[k]) puts("Fibo");
else puts("Nacci");
}
return 0;
}
#SG函数#HDU 1848 Fibonacci again and again的更多相关文章
- hdu 1848 Fibonacci again and again(SG函数)
Fibonacci again and again HDU - 1848 任何一个大学生对菲波那契数列(Fibonacci numbers)应该都不会陌生,它是这样定义的: F(1)=1; F(2)= ...
- HDU 1848 Fibonacci again and again (斐波那契博弈SG函数)
Fibonacci again and again Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & ...
- HDU 1848 Fibonacci again and again(SG函数)
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...
- HDU 1848 Fibonacci again and again【SG函数】
对于Nim博弈,任何奇异局势(a,b,c)都有a^b^c=0. 延伸: 任何奇异局势(a1, a2,… an)都满足 a1^a2^…^an=0 首先定义mex(minimal excludant)运算 ...
- hdu 1848 Fibonacci again and again (初写SG函数,详解)
思路: SG函数的应用,可取的值为不连续的固定值,可用GetSG求出SG,然后三堆数异或. SG函数相关注释见代码: 相关详细说明请结合前一篇博客: #include<stdio.h> # ...
- HDU 1848 Fibonacci again and again(SG函数入门)题解
思路:SG打表 参考:SG函数和SG定理[详解] 代码: #include<queue> #include<cstring> #include<set> #incl ...
- hdu 1848 Fibonacci again and again 组合游戏 SG函数
题目链接 题意 三堆石子,分别为\(m,n,p\)个,两人依次取石子,每次只能在一堆当中取,并且取的个数只能是斐波那契数.最后没石子可取的人为负.问先手会赢还是会输? 思路 直接按定义计算\(SG\) ...
- HDU 1848 Fibonacci again and again SG函数做博弈
传送门 题意: 有三堆石子,双方轮流从某堆石子中去f个石子,直到不能取,问先手是否必胜,其中f为斐波那契数. 思路: 利用SG函数求解即可. /* * @Author: chenkexing * @D ...
- HDU 1848 Fibonacci again and again【博弈SG】
Problem Description 任何一个大学生对菲波那契数列(Fibonacci numbers)应该都不会陌生,它是这样定义的: F(1)=1; F(2)=2; F(n)=F(n-1)+F( ...
- HDU 1848 Fibonacci again and again
题解:尼姆博弈,对于1至1000计算SG函数,每次取最小的前继值,SG值异或为0则为P-position. #include <cstdio> #include <cstring&g ...
随机推荐
- 【Azure App Services】多次操作App Service伸缩实例遇见限制操作记录
问题描述 多次操作App Services,进行实例数的变化.达到限制后遇见报错: 错误的具体描述为: { "status": "Failed", " ...
- 【Azure Redis】Redis-CLI连接Redis 6380端口始终遇见 I/O Error
问题描述 使用Redis-cli连接Redis服务,因为工具无法直接支持TLS 6380端口连接,所以需要使用 stunnel 配置TLS/SSL服务.根据文章(Linux VM使用6380端口(SS ...
- 一文了解 NebulaGraph 上的 Spark 项目
本文首发于 Nebula Graph Community 公众号 最近我试着搭建了方便大家一键试玩的 Nebula Graph 中的 Spark 相关的项目,今天就把它们整理成文分享给大家.而且,我趟 ...
- STL-unordered_hashtable模拟实现
#pragma once #include<vector> #include<string> #include<iostream> using std::cout; ...
- 使用 Java 在Excel中创建下拉列表
下拉列表(下拉框)可以确保用户仅从预先给定的选项中进行选择,这样不仅能减少数据输入错误,还能节省时间提高效率.在MS Excel中,我们可以通过 "数据验证" 提供的选项来创建下拉 ...
- hadoop 3.3.5伪分布式集群部署以及遇到的问题解决
hadoop包下载 https://archive.apache.org/dist/hadoop/common/ 安装好jdk并配置环境变量 下载hadoop压缩包并放至 /data/hadoop目录 ...
- [VueJsDev] 基础知识 - asyncTool.js异步执行工具
[VueJsDev] 目录列表 https://www.cnblogs.com/pengchenggang/p/17037320.html asyncTool.js 异步执行工具 ::: detail ...
- iview 动态表单验证 FormItem prop rules v-show 动态表单校验
iview 动态表单验证 FormItem prop rules v-show 重点1 用v-show 控制显示隐藏 重点2 prop 指定字段 重点3 :rules 动态指定规则 <div v ...
- vscode 创建 git tag,并推送到远程
Step. 1: 创建tag 左侧 源代码管理 右上角 ... 标记 -> 创建标记 输入tag名称 回车 输入tag描述 Step. 2: 查看tag 使用命令 git tag 查看当前所有的 ...
- 为什么要将Jenkins部署在k8s上
传统Jenkins的Master-Slave方案的缺陷 Master节点发生单点故障时,整个流程都不可用了 每个 Slave节点的配置环境不一样,来完成不同语言的编译打包等操作,但是这些差异化的配置导 ...