HDU 1848 Fibonacci again and again(尼姆博弈)
2014-03-16 11:49
423 查看
题目链接:HDU 1848 Fibonacci again and again
尼姆博弈。
和上一道题区别在于SG值。
套用SG函数模版。
注意亦或运算符的优先级比较低,低于==,所以要记得在适当的地方加上括号。
尼姆博弈。
和上一道题区别在于SG值。
套用SG函数模版。
注意亦或运算符的优先级比较低,低于==,所以要记得在适当的地方加上括号。
#include <iostream> #include <stdio.h> #include <cstring> using namespace std; const int MAX_N = 1000 + 10; int f[20],_hash[20]; int sg[MAX_N]; void get_f() { f[0] = f[1] = 1; for(int i = 2;i < MAX_N;i++) { f[i] = f[i - 1] + f[i - 2]; if(f[i] >= 1000) break; } } 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++) _hash[sg[i-f[j]]]=1; for(j=0;j<=n;j++) //求mes{}中未出现的最小的非负整数 { if(_hash[j]==0) { sg[i]=j; break; } } } } int main() { int m,n,p; while(scanf("%d %d %d",&m,&n,&p),m + n + p) { get_f(); getSG(MAX_N); printf((sg[m] ^ sg ^ sg[p]) == 0 ? "Nacci\n" : "Fibo\n");//亦或运算符优先级低于==,要加上括号 } return 0; }
相关文章推荐
- hdu(1848)Fibonacci again and again(sg函数版的尼姆博弈)
- hdu-------(1848)Fibonacci again and again(sg函数版的尼姆博弈)
- HDU 1848 Fibonacci again and again
- hdu 1848 Fibonacci again and again(sg函数的简单应用 模板题 )
- hdu 1848(Fibonacci again and again)(SG博弈)
- HDU 1848 Fibonacci again and again
- HDU 1848 Fibonacci again and again
- (step8.2.6)hdu 1848(Fibonacci again and again——组合博弈)
- HDU - 1848 - Fibonacci again and again
- HDU 1848 - Fibonacci again and again(SG)
- HDU1848_Fibonacci again and again_经典的求sg
- HDU - 1848 Fibonacci again and again SG函数应用
- HDU1848-Fibonacci again and again
- hdu 1848 Fibonacci again and again
- 【hdu 1848】Fibonacci again and again
- HDU1848 Fibonacci again and again SG函数
- HDU 1848 Fibonacci again and again
- (step8.2.6)hdu 1848(Fibonacci again and again——组合博弈)
- hdu 1848 Fibonacci again and again
- hdu1848 Fibonacci again and again (博弈论sg函数模板)