HDU-1848-组合博弈
来源:互联网 发布:阿里云服务器建站 编辑:程序博客网 时间:2024/06/01 07:37
题目大意:有三堆石子,两个人轮流取一堆石子中只能为斐波那契数的石子,问最后谁赢;
题目解析:预处理f函数和sg函数,直接把三堆石子的sg函数异或起来判断是否为0;
AC代码:
#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<string>using namespace std;const int N=1010; int f[N];int sg[N];int Hash[N]; void getSG(int n){ memset(sg,0,sizeof(sg)); for(int i = 1; i <= n; i++){ memset(Hash,0,sizeof(Hash)); for(int j = 1; f[j] <= i; j++) Hash[sg[i-f[j]]] = 1; for(int j = 0; j <= n; j++){ if(Hash[j] == 0){ sg[i] = j; break; } } } } void init(){f[1]=f[0]=1;for(int i=2;i<=16;i++)f[i]=f[i-1]+f[i-2];getSG(1000);}int main(){init();int a,b,c;while(scanf("%d%d%d",&a,&b,&c)!=EOF){if(a==0&&b==0&&c==0)break;if(sg[a]^sg[b]^sg[c])printf("Fibo\n");else printf("Nacci\n");}return 0;}
阅读全文
0 0
- HDU-1848-组合博弈
- HDU-5724-组合博弈
- hdu 1848 Fibonacci again and again(组合博弈)
- 组合博弈(NIM博弈和巴什博奕组合) hdu 1851
- hdu 1849 组合博弈水题
- HDU 1730 Northcott Game 【组合博弈】
- (step8.2.6)hdu 1848(Fibonacci again and again——组合博弈)
- HDU 1848 浅谈组合游戏博弈论及SG函数MEX推导SG定理
- 组合博弈
- 组合博弈
- 组合博弈
- hdu 1848 (博弈)
- hdu 2147 kiki‘game(组合游戏-博弈)
- hdu 1079 Calendar Game 博弈(组合游戏) sg函数
- HDU 5724 Chess(状态压缩+组合博弈)
- (组合博弈)(sg函数模版)HDU 5724 Chess
- HDU 1848 博弈 SG值
- HDU博弈
- Android关于中文url编码类似于%E5%8F%8C%E5%AD%90%E5%BA%A7
- poj 1033 Defragment 模拟+递归
- Neutron总结-Firewall as a Service(FWaaS)
- python爬虫学习第七天
- 第一章 实用R内置数据进行数据处理--笔记
- HDU-1848-组合博弈
- 割点和桥
- 排序与查找
- 使用PreparedStatement,出现You have an error in your SQL syntax; check the manual that corresponds to you
- 微信小程序录音后上传文件
- 我的博客
- Java NIO与IO的区别
- 利用Cookie记录商品浏览信息
- Vue 由单个复选框引发的联想