鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=2188
巴什博弈的模板題,代公式就可以了。
a代表目標捐款額,b代表每次能捐的最大額度。那麼如果當a是b+1的整數倍時,先捐的林先生一定輸,因爲林先生只能捐1-b之間的數,那麼徐隊只要每次補夠b+1的金額就能保證贏。相對應的,如果a對b+1取餘不爲0時先捐的林先生一定贏,林先生第一次先捐這個餘數,然後每次在徐隊捐完之後補全b+1就一定能贏。
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
while(n--)
{
int a,b;
cin>>a>>b;
if(a%(b+1)>0)
cout<<"Grass"<<endl;
else
cout<<"Rabbit"<<endl;
}
return 0;
}