本文主要是介绍hdu 1848 - Fibonacci again and again(简单博弈),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
裸的sg函数题目
代码如下:
const int M = 1005;
int f[M], sg[M];
void getSG()
{sg[0] = 0;for(int i = 1; i < M; ++i) {bool vis[M];memset(vis,0,sizeof(vis));for(int j = 1; f[j] <= i; ++j)vis[sg[i-f[j]]] = 1;for(int j = 0; ; ++j)if(!vis[j]) {sg[i] = j;break;}}
}
int main()
{int n, m, q;f[0] = f[1] = 1;for(int i = 2; ; ++i) {f[i] = f[i-1] + f[i-2];if(f[i]>M) break;}getSG();while(~scanf("%d%d%d", &n, &m, &q) && n+m+q) {if(sg[m]^sg[n]^sg[q]) puts("Fibo");else puts("Nacci");}return 0;
}
这篇关于hdu 1848 - Fibonacci again and again(简单博弈)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!