hdu 2188 巴什博弈

2022-08-18 23:39:16 字數 869 閱讀 9322

problem description

對於四川同胞遭受的災難,全國人民紛紛伸出援助之手,幾乎每個省市都派出了大量的救援人員,這其中包括搶險救災的武警部隊,**和防疫的醫護人員,以及進行心理疏導的心理學專家。根據要求,我校也有乙個奔赴災區救災的名額,由於廣大師生報名踴躍,學校不得不進行選拔來決定最後的人選。經過多輪的考核,形勢逐漸明朗,最後的名額將在「林隊」和「徐隊」之間產生。但是很巧合,2個人的簡歷幾乎一模一樣,這讓主持選拔的8600很是為難。無奈,他決定通過捐款來決定兩人誰能入選。

選拔規則如下:

1、最初的捐款箱是空的;

2、兩人輪流捐款,每次捐款額必須為正整數,並且每人每次捐款最多不超過m元(1<=m<=10)。

3、最先使得總捐款額達到或者超過n元(0

input

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

output

對於每組測試資料,如果林隊能入選,請輸出字串"grass", 如果徐隊能入選,請輸出字串"rabbit",每個例項的輸出佔一行。

sample input

28 10

11 10

sample output

grass

rabbit

解析:巴什博弈

當當前剩餘n為(m+1)的倍數時則這時取的人必敗,後者只需取(m+1-前者取的數量)。

反之,這時取的人必勝,只需構造出當前剩餘n為(m+1)的倍數這種狀態。

#include using

namespace

std;

intn;

intmain()

return0;

}

HDU 2188 巴什博弈

題解 剛開始沒思路,後來知道是巴士博弈,茅塞頓開。參考部落格 這道題是先到n誰就贏,林隊先投,問林隊能贏不,所以應該站在先手的角度看怎麼去贏。比如n m 1,不管先手怎麼投,後手肯定贏,所以先手要想贏,必須給後手造成他去投時n m 1,所以當n m 1 r s,先手取s,如果後手取k,先手再取m 1...

hdu 2188 巴什博弈入門

如果n m 1,那麼由於一次最多只能取m個,所以,無論先取者拿走多少個,後取者都能夠一次拿走剩餘 的物品,後者取勝。因此我們發現了如何取勝的法則 如果n m 1 r s,r為任意自然數,s m 那麼先 取者要拿走s個物品,如果後取者拿走k m 個,那麼 先取者再拿走m 1 k個,結果剩下 m 1 r...

HDU2188 巴什博奕

problem description 對於四川同胞遭受的災難,全國人民紛紛伸出援助之手,幾乎每個省市都派出了大量的救援人員,這其中包括搶險救災的武警部隊,和防疫的醫護人員,以及進行心理疏導的心理學專家。根據要求,我校也有乙個奔赴災區救災的名額,由於廣大師生報名踴躍,學校不得不進行選拔來決定最後的人...