尼姆博弈:
1:如果n <= m 先手必胜;
2:如果n > m; n = (m+1)*r 先手必输,策略:
先手拿走k个 则后手拿走m+1-k个 最后由后手拿完;
3:如果 n = (m+1)*r+g 先手必胜,因为先手拿走 g个,又回到上面2的情况;
#include<iostream>
using namespace std;
int main()
{
int t;
cin >> t;
while(t--)
{
int n, m;
cin >> n >> m;
if(n <= m)
{
cout << "Grass" << endl;
continue;
}
if(n%(1+m)==0)
cout<< "Rabbit" << endl;
else
cout << "Grass" << endl;
}
}
hau2188
最新推荐文章于 2022-01-14 18:50:53 发布