HDU 1848 SG函数
这题运用博弈中的SG函数解决的,感觉初级博弈题用这个很好用但是难一些的还是不会求SG值,就是SG的模板题。
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int k,fib[1000],f[10001];
int mex1(int p)
{int i,t;bool g[101]= {0};for(i=0; i<k; i++){t=p-fib[i];if(t<0)break;if(f[t]==-1)f[t]=mex1(t);g[f[t]]=1;}for(i=0;; i++)if(!g[i])return i;
}
int main()
{fib[0]=1,fib[1]=2;for(int i=2; i<19; i++)fib[i]=fib[i-1]+fib[i-2];k=19;sort(fib,fib+k);memset(f,-1,sizeof(-1));f[0]=0;for(int i=1; i<=1000; i++)f[i]=mex1(i);int a,b,c;while(~scanf("%d%d%d",&a,&b,&c),a+b+c){int s=f[a]^f[b]^f[c];if(s)puts("Fibo");elseputs("Nacci");}return 0;
}
HDU 1848 SG函数相关推荐
- 博弈论与sg函数入门
记录一点结论性的东西,推导见百度吧. 首先博弈的前提是双方"绝对理智". 一般的胜负博弈游戏来说,有以下几点:(注意必胜必败是针对这回合操作的人) 所有终结状态为必败点(比如五子棋 ...
- SG函数入门HDU 1848
SG函数 sg[i]为0表示i节点先手必败. 首先定义mex(minimal excludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非负整数.例如mex{0,1,2,4}=3. ...
- Fibonacci again and again HDU - 1848(尼姆博弈+SG函数的运用+SG函数详解)
题意: 给出三堆石子(m,n,p个),两人每次只能取斐波那契数f[i]个,最先取光所有石子者取胜 题目: 任何一个大学生对菲波那契数列(Fibonacci numbers)应该都不会陌生,它是这样定义 ...
- HDU 1846-Brave Game(巴什博弈-SG函数)
Brave Game Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- HDU - 1536 S-Nim(sg函数)
题目链接:点击查看 题目大意:根据尼姆博弈的规则,现在更改为每次只能从任意一堆中取走规定集合中的数目,问每次游戏先手必胜还是必败 题目分析:sg打表模板题,这里挂一个大牛的博客,讲得是尼姆博弈和sg函 ...
- HDU - 1079 Calendar Game(博弈打表sg函数)
题目链接:点击查看 题目大意:给出一个日期,两个人轮流按照规则操作,具体规则如下: 每次可以增加一天 每次可以增加一个月到下一个月的当天 首先到达2001年11月4日的人获胜,问谁能获胜 题目分析:因 ...
- hdu 1848(Fibonacci again and again)(SG博弈)
Fibonacci again and again Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav ...
- HDU 1404 Digital Deletions(博弈 + SG函数打表)
Digital Deletions 思路 一道博弈论的题目,考虑到题目所给的范围是字符长度为1−>61-> 61−>6,所以我们可以考虑暴力打表出10610 ^ 6106内的所有状态 ...
- *【HDU - 1517】【POJ - 2505】A Multiplication Game(博弈,递推找规律或SG函数)
题干: Stan and Ollie play the game of multiplication by multiplying an integer p by one of the numbers ...
最新文章
- 打包静默安装参数(nsis,msi,InstallShield,InnoSetup)[转]
- Aurora HDR 2019中文版
- 云原生,开发者的黄金时代
- 如果编程语言是女孩子
- jzoj3801-[NOIP2014模拟8.23]骰子【数学期望】
- 【渝粤教育】 国家开放大学2020年春季 1069中央银行理论与实务 参考试题
- JAVA 捕获异常所遇BUG
- C/C++:uint64_t 转为char*
- python optimize_Python的五大常用库——numpy,pandas,matplotlib等
- js进阶 10-3 jquery中为什么用document.ready方法
- 最大乘积java_在Java中查找负数的最大乘积
- cmos和ttl_TTL和CMOS的区别详解
- 在大多数情况下病毒入侵计算机系统以后,网络支付与安全练习题库
- 汽车零部件开发工具OSEK NM协议栈源代码及配置功能
- 显著目标检测的研究思路
- 分体式水晶头_六类水晶头的接线方法(分体式安装图解)
- FastCGI 进程管理器(FPM)
- Tensorflow+gensim实现文章自动审核功能
- 将 Business Events 与WESB及WPS rver 集成
- stm32f0 大小端_STM32F0中文资料.pdf