1. 程式人生 > >HDU2188 悼念512汶川大地震遇難同胞——選拔誌願者(巴什博奕)

HDU2188 悼念512汶川大地震遇難同胞——選拔誌願者(巴什博奕)

queue lis code 通過 試用 一模一樣 pri space tdi

悼念512汶川大地震遇難同胞——選拔誌願者

Problem Description

對於四川同胞遭受的災難,全國人民紛紛伸出援助之手,幾乎每個省市都派出了大量的救援人員,這其中包括搶險救災的武警部隊,治療和防疫的醫護人員,以及進行心理疏導的心理學專家。根據要求,我校也有一個奔赴災區救災的名額,由於廣大師生報名踴躍,學校不得不進行選拔來決定最後的人選。經過多輪的考核,形勢逐漸明朗,最後的名額將在“林隊”和“徐隊”之間產生。但是很巧合,2個人的簡歷幾乎一模一樣,這讓主持選拔的8600很是為難。無奈,他決定通過捐款來決定兩人誰能入選。
選拔規則如下:
1、最初的捐款箱是空的;
2、兩人輪流捐款,每次捐款額必須為正整數,並且每人每次捐款最多不超過m元(1<=m<=10)。

3、最先使得總捐款額達到或者超過n元(0<n<10000)的一方為勝者,則其可以親赴災區服務。
我們知道,兩人都很想入選誌願者名單,並且都是非常聰明的人,假設林隊先捐,請你判斷誰能入選最後的名單?

Input

輸入數據首先包含一個正整數C,表示包含C組測試用例,然後是C行數據,每行包含兩個正整數n,m,n和m的含義參見上面提到的規則。

Output

對於每組測試數據,如果林隊能入選,請輸出字符串"Grass", 如果徐隊能入選,請輸出字符串"Rabbit",每個實例的輸出占一行。

Sample Input

2
8 10
11 10

Sample Output

Grass
Rabbit

題解

題意

中文題面,其實就是每次增加不超過m的數值,首先增加到n的為勝者

思路

標準的巴什博奕的模板:

對巴什博奕可以簡單分析得到。對於後取者,無論先取者,取任何值,後取者一定調整取值,使得在一輪中增加的值為m+1。

因此對於初始局面,只需要判斷n能否整除m+1即可。

代碼

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
#include<vector>
#include<stack>
#include<bitset>
#include<cstdlib>
#include<cmath>
#include<set>
#include<list>
#include<deque>
#include<map>
#include<queue>
using namespace std;
typedef long long ll;
const double PI = acos(-1.0);
const double eps = 1e-6;
const int INF = 0x3f3f3f3f;


int main(){
    int n,m;
    int T;
    scanf("%d",&T);
    while(T--){
        scanf("%d %d",&n,&m);
        if(n%(m+1)==0)  printf("Rabbit\n");
        else    printf("Grass\n"); 
    }
    return 0;
}

HDU2188 悼念512汶川大地震遇難同胞——選拔誌願者(巴什博奕)