首页 > 其他 > 详细

HDU 1848(博弈)

时间:2020-03-22 21:11:37      阅读:53      评论:0      收藏:0      [点我收藏+]

http://acm.hdu.edu.cn/showproblem.php?pid=1848

模拟sg

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1005;
int n,m,p;
int f[maxn],vis[maxn],sg[maxn];
void Init(){
    f[1] = 1;
    f[2] = 1;
    for(int i = 3; i <= 1000; i++)
        f[i] = f[i - 1] + f[i - 2];
    sg[0] = 0;sg[1] = 1;
    for(int i = 1; i <= 1000; i++){
        memset(vis,0, sizeof(vis));
        for(int j = 1; f[j] <= i; j++)
            vis[sg[i - f[j]]] = 1;
        for(int j = 0; j <= 1000;j++){
            if(!vis[j]){
                sg[i] = j;
                break;
            }
        }
    }
}
int main(){
    //freopen("in","r",stdin);
    ios::sync_with_stdio(0);
    Init();
    while(cin >> n >> m >> p){
        if(!n && !m && !p) break;
        if(sg[n] ^ sg[m] ^ sg[p])
            cout << "Fibo" << endl;
        else cout << "Nacci" << endl;
    }
    return 0;
}

 

HDU 1848(博弈)

原文:https://www.cnblogs.com/xcfxcf/p/12548168.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!