HDU 2188 基礎bash博弈

2022-05-20 10:28:02 字數 836 閱讀 5358

基礎的bash博弈,兩人捐錢,每次不超過m,誰先捐到n誰勝。

對於乙個初始值n,如果其不為(m+1)的倍數,那麼先手把餘數拿掉,後繼遊戲中不管如何,後手操作後必定會有數餘下,那麼先手必勝,反之後手必勝。

/** @date    : 2017-10-13 22:01:49

* @filename: hdu 2188 基礎bash.cpp

* @platform: windows

* @author : lweleth ([email protected])

* @link :

* @version : $id$

*/#include #define ll long long

#define pii pair

#define mp(x, y) make_pair((x),(y))

#define fi first

#define se second

#define pb(x) push_back((x))

#define mmg(x) memset((x), -1,sizeof(x))

#define mmf(x) memset((x),0,sizeof(x))

#define mmi(x) memset((x), inf, sizeof(x))

using namespace std;

const int inf = 0x3f3f3f3f;

const int n = 1e5+20;

const double eps = 1e-8;

int main()

return 0;

}

HDU 2188 巴什博弈

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

hdu 2188 巴什博弈

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

hdu 2188 巴什博弈入門

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