标签:
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
#include <cstdio> #include <iostream> #include <cstring> #include <string> using namespace std; int sg[1005]; int f[20]; bool vis[1005]; void Init() { int len=0; f[len++] = 1; f[len++] = 2; while(1) { f[len] = f[len-1]+f[len-2]; if(f[len] > 1000) { break; } len++; } for(int i=0; i<1003; i++) { memset(vis, 0, sizeof(vis)); for(int j=0; j<len && f[j]<=i; j++) { vis[sg[i-f[j]]] = 1; } for(int j=0; j<=1003; j++) { if(!vis[j]) { sg[i] = j; break; } } } } int main () { Init(); int m, n, p; while(scanf("%d%d%d", &m, &n, &p) != EOF && (m|n|p)) { printf("%s\n", sg[m]^sg[n]^sg[p] ? "Fibo":"Nacci"); } return 0; }
HDU 1848 —— Fibonacci again and again 【博弈 sg函数】
标签:
原文地址:http://www.cnblogs.com/AcIsFun/p/5372866.html