hdu2516 取石子游戏 fib博弈

   又是一种特殊的模型..对于n,斐波那契数列为必败态,否则必胜..证明参见:http://www.xuebuyuan.com/1273671.html

#include <iostream>
#include <cstdio>
#include <cstring>
#include <map>
using namespace std;
typedef long long ll;
const ll inf=1LL<<31LL;
ll n,m;
int main()
{
    map<ll,int>mp;
    ll a=1,b=1,c;
    ll ct=2;
    mp[1]=1;
    while (a<inf)
    {
        c=a+b;
        mp[c]=ct++;
        a=b;
        b=c;
    }
    while(scanf("%I64d",&n) && n)
    {
        if (mp.find(n)==mp.end()) puts("First win");
        else puts("Second win");
    }
    return 0;
}


你可能感兴趣的:(hdu2516 取石子游戏 fib博弈)