博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1848 Fibonacci again and again (SG)
阅读量:5328 次
发布时间:2019-06-14

本文共 711 字,大约阅读时间需要 2 分钟。

题意:

3堆石头,个数分别是m,n,p。

两个轮流走,每走一步可以选择任意一堆石子,然后取走f个。f只能是菲波那契中的数(即1,2,3,5,8.....)

取光所有石子的人胜。

判断先手胜还是后手胜。

 

思路:

简单SG。看代码。

 

代码:

int sg[1005];int dfs(int x){    if(sg[x]!=-1)        return sg[x];    bool vis[1005]={
0}; int t1=1,t2=2; if(x>=t1) vis[dfs(x-t1)]=true; while(x>=t2){ vis[dfs(x-t2)]=true; t1=t1+t2; swap(t1,t2); } for(int i=0;;++i){ if(!vis[i]){ return sg[x]=i; } }}int m,n,p;int main(){ mem(sg,-1); while(scanf("%d%d%d",&m,&n,&p),m||n||p){ dfs(m); dfs(n); dfs(p); int ans=dfs(m)^dfs(n)^dfs(p); if(ans) puts("Fibo"); else puts("Nacci"); }}

 

转载于:https://www.cnblogs.com/fish7/p/4005290.html

你可能感兴趣的文章
织梦MIP文章内容页图片适配百度MIP规范
查看>>
点击复制插件clipboard.js
查看>>
[Kali_BT]通过低版本SerialPort蓝牙渗透功能手机
查看>>
C语言学习总结(三) 复杂类型
查看>>
HNOI2018
查看>>
【理财】关于理财的网站
查看>>
Ubunt中文乱码
查看>>
《当幸福来敲门》读后
查看>>
【转】系统无法进入睡眠模式解决办法
查看>>
省市县,循环组装,整合大数组
查看>>
stm32中字节对齐问题(__align(n),__packed用法)
查看>>
like tp
查看>>
posix多线程有感--线程高级编程(线程属性函数总结)(代码)
查看>>
spring-使用MyEcilpse创建demo
查看>>
DCDC(4.5V to 23V -3.3V)
查看>>
kettle导数到user_用于left join_20160928
查看>>
activity 保存数据
查看>>
typescript深copy和浅copy
查看>>
linux下的静态库与动态库详解
查看>>
hbuilder调底层运用,多张图片上传
查看>>