hdu 1846 Brave Game 博弈

#include <cstdio>
#include <iostream>
using namespace std;
const int maxn=1010;
int sg[maxn],vis[maxn];
int n,m;
int main()
{
    int T;
    cin>>T;
    while(T--)
    {
        cin>>n>>m;
        if(n<=m)cout<<"first"<<endl;
        else
        {
            if(n%(m+1)==0)cout<<"second"<<endl;
            else cout<<"first"<<endl;
        }
    }
    return 0;
}
/*
    简单博弈
    若n是(m+1)的倍数,则第一个人取a,第二个人就取m+1-a,每一循环取走m+1,
最后剩下m+1个,这样无论第一个人取多少,第二个人必定能取完。
    其他情况,第一个人必定可以取一定数目使得石子数变为m+1的倍数,
即为上述情况,那样第一人必胜
*/

你可能感兴趣的:(博弈)