【HDU1848】Fibonacci again and again (博弈论)
来源:互联网 发布:淘宝卖虚拟物品流程 编辑:程序博客网 时间:2024/06/06 03:23
题目大意:有3堆石头,两个人轮流取,每次取的数量只能是Fibonacci中的数,取完所有的人获胜,求先手胜负情况。
题解:SG定理裸题SG定理
代码:
#include<cstdio>#include<cstring>#include<algorithm>using std::max;using std::swap;#define MAXN 1005int g[MAXN];int fib[20],fib_cnt;bool vis[MAXN];int main(){ int m,n,p; int a=1,b=1; while(a<MAXN) { fib[fib_cnt++]=a; b=a+b; swap(a,b); } g[0]=0; for(int i=1,j;i<MAXN;i++) { memset(vis,0,sizeof vis); for(j=0;j<fib_cnt&&fib[j]<=i;j++) vis[g[i-fib[j]]]=1; for(j=0;vis[j];j++); g[i]=j; } while(1) { scanf("%d%d%d",&m,&n,&p); if(!m&&!n&&!p)break; if(((g[m]^g[n])^g[p])==0) printf("Nacci\n"); else printf("Fibo\n"); } return 0;}
0 0
- 【HDU1848】Fibonacci again and again (博弈论)
- hdu1848 Fibonacci again and again (博弈论sg函数模板)
- hdu1848—Fibonacci again and again(博弈论sg)
- hdu1848 Fibonacci again and again(博弈)
- hdu1848 Fibonacci again and again
- HDU1848----Fibonacci again and again
- hdu1848 Fibonacci again and again
- hdu1848 Fibonacci again and again
- hdu1848 Fibonacci again and again
- Hdu1848 Fibonacci again and again(sg函数)
- Fibonacci again and again(hdu1848+SG打表)
- HDU1848 Fibonacci again and again(SG函数的应用)
- hdu1848——Fibonacci again and again(SG函数)
- HDU1848 Fibonacci again and again 博弈
- hdu1848 Fibonacci again and again,SG函数
- HDU1848 Fibonacci again and again【博弈】
- HDU1848 Fibonacci again and again SG函数
- [SG函数] HDU1848: Fibonacci again and again
- docker java web应用
- 大话数据结构6 - 查找
- JAVA程序员成长之路的总结
- PAT 1043 输出PATest(二)
- Spring 之SPEL表达式
- 【HDU1848】Fibonacci again and again (博弈论)
- 算法笔记_019-背包问题(Java)
- Netty3源码原理
- C中的二分函数:upper_bound()与lower_bound()
- 大话数据结构7 - 排序
- linux系统644、755、777权限详解
- 怎样应对“需求不确定型项目”?
- Go语言基础语法学习笔记[3]
- OpenCV Python教程(3、直方图的计算与显示)