HDU 1848 Fibonacci again and again(每次只能取fibonacci数的NIM)
来源:互联网 发布:萧山网络问政查看 编辑:程序博客网 时间:2024/06/14 10:23
NIM博弈的变体,每次只能取Fibonacci数,思路还是通过SG函数来解决
#include <bits/stdc++.h>using namespace std;const int N=1001;int f[N],sg[N],HASH[N];void getSG(int n){ int i,j; memset(sg,0,sizeof(sg)); for(i=1;i<=n;i++) { memset(HASH,0,sizeof(HASH)); for(j=1;f[j]<=i;j++)//标记所有可取到的状态mex函数 HASH[sg[i-f[j]]]=1; for(j=0;j<=n;j++)//找到不在mex中的最小自然数 { if(HASH[j]==0) { sg[i]=j; break; } } }}int main(){ std::ios::sync_with_stdio(false); std::cin.tie(0); f[0]=f[1]=1; for(int i=2;i<=16;i++) { f[i]=f[i-1]+f[i-2]; } getSG(1000); int m,n,p; while(cin>>m>>n>>p&&(m||n||p)) { if(sg[m]^sg[n]^sg[p])//异或值等于零先手必败 { cout<<"Fibo"<<endl; } else cout<<"Nacci"<<endl; } return 0;}
0 0
- HDU 1848 Fibonacci again and again(每次只能取fibonacci数的NIM)
- hdu 1848 Fibonacci again and again(nim博弈)
- HDU 1848 Fibonacci again and again Nim博弈变形
- [ACM] hdu 1848 Fibonacci again and again(Nim博弈 SG函数)
- HDU 1848 Fibonacci again and again
- hdu 1848Fibonacci again and again
- hdu 1848 Fibonacci again and again
- hdu 1848 Fibonacci again and again
- HDU 1848 Fibonacci again and again
- hdu-1848 Fibonacci again and again
- HDU 1848 Fibonacci again and again
- HDU-1848-Fibonacci again and again
- HDU 1848 -Fibonacci again and again 博弈论
- hdu 1848 Fibonacci again and again
- HDU 1848 Fibonacci again and again
- hdu 1848 Fibonacci again and again
- HDU 1848 Fibonacci again and again
- 【hdu 1848】Fibonacci again and again
- centos7安装openvswitch虚拟交换机
- Java 三大循环结构
- Shell scripts入门
- Tomcat 的域名配置
- Linux学习篇第二章之~unit7 访问网络文件共享服务
- HDU 1848 Fibonacci again and again(每次只能取fibonacci数的NIM)
- IO流
- Android线程—Handler、Looper、Message、MessageQueue
- 自定义View多层圆实现
- 使用openvswitch实现跨主机docker容器互联
- Android 简史
- 记事本(c#实现,包含,打开,保存,另存为,复制,粘贴等功能)
- Centos6.7 Centos7.0 安装OpenVSwitch痛苦经历
- C++中空类占一字节原因详解