悼念512汶川大地震遇難同胞——選拔志願者
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8815 Accepted Submission(s): 5625
選拔規則如下:
1、最初的捐款箱是空的;
2、兩人輪流捐款,每次捐款額必須爲正整數,並且每人每次捐款最多不超過m元(1<=m<=10)。
3、最先使得總捐款額達到或者超過n元(0<n<10000)的一方爲勝者,則其可以親赴災區服務。
我們知道,兩人都很想入選志願者名單,並且都是非常聰明的人,假設林隊先捐,請你判斷誰能入選最後的名單?
巴什博奕(Bash Game):共n個,每次取[1,m]個,先取完獲勝
只要n是m+1的倍數,後拿的贏
因爲先拿無論拿多少,後拿的都湊到m+1個,即拿走m+1-k個(k是先拿個數).
則最後一次一定是後拿可以控制住.即每次都控制剩餘數爲m+1倍數給n先拿
反之.如果一開始不是m+1倍數.則先拿的控制他到m+1倍數,
然後他自己變成後拿的.這樣就可以贏了
這種和1846的取石子問題都是一樣的.
/*
* hdu 2188
* author : mazciwong
* creat on: 2016-12-11
*/
/*
簡單博弈
巴什博奕(Bash Game):共n個,每次取[1,m]個,先取完獲勝
只要n是m+1的倍數,後拿的贏
因爲先拿無論拿多少,後拿的都湊到m+1個,即拿走m+1-k個(k是先拿個數).
則最後一次一定是後拿可以控制住.即每次都控制剩餘數爲m+1倍數給n先拿
反之.如果一開始不是m+1倍數.則先拿的控制他到m+1倍數,
然後他自己變成後拿的.這樣就可以贏了
參考 hdu 1846 裸題
*/
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
int t;
scanf("%d", &t);
while (t--)
{
int n, m;
scanf("%d%d", &n, &m);
if (n % (m + 1) == 0) //後者勝
puts("Rabbit");
else
puts("Grass"); //前者勝
}
return 0;
}