接触一下博弈,这是最经典的博弈了。
思路,小于等于m的就不说了,当只有m+1个物品时,则第一个人会输。
这样就可以找到制胜的最佳方案了,当n=(m+1)*r+s时,只要第一个人先取s个,则接下来只要保证留下(m+1)倍数个的物品给下一个人便能赢的比赛。
代码:
#include<iostream>
using namespace std;
int main()
{
int T,n,m;
cin>>T;
while(T--)
{
cin>>n>>m;
int tmp=n%(m+1);
if(tmp>0)
cout<<"first"<<endl;
else cout<<"second"<<endl;
}
return 0;
}