hdu1729尼姆博弈

2021-08-02 01:13:25 字數 538 閱讀 5365

尼姆博弈——對於n堆石子輪流取,先取完者勝,和這道題蠻像的

將這道題改造成尼姆博弈然後進行位運算

原題意為s個石子,取小於原有石子c的平方數個石子

轉為每堆任意取小於find(s,c)個石子

int find(int s,int c)

這一段,有很多講解的,看了。。半懂半不懂

任意數p,p+p*p要小於s的最大p

然後。。如果c>p,這時先行者可以在s-c中任意拿,return ;

如果沒有,就遞迴,至於為什麼用p作s繼續遞迴。。。不造欸。。

就醬吧,如果以後想明白了再來

#include

#include

#include

#include

using namespace std;

int find(int s,int c)

int main()

printf("case %d:\n",count++);

if(ans) puts("yes");

else puts("no");}}

博弈 尼姆博弈

今天我們來聊一聊另一種博弈 尼姆博弈,這一種博弈可以說是巴什博弈的一種變體,巴什博弈中 石子 的堆數為1堆,而在利姆博弈中 石子 的堆數為n堆,還有在尼姆博弈中取石子的規則也發生了變化,前一種博弈中取石子的數量限定在 1,l 而後一種取石子的數量可以為任意數 但不能不取,而且還不能超過這一堆石子的總...

hdu1730尼姆博弈

我猜中了開頭,卻沒有猜中結局 after several days 來編輯結局了 在一行棋子中,一旦兩個棋子挨著,先手必輸 先手走幾個對方走幾個,緊挨著,一定會被逼到邊緣 所以兩個棋子挨著就代表這一行已定局 石子數為0 所以就可以將兩個棋子之間的距離當作石子數,引申為尼姆博弈進行異或 注意距離要 1...

hdu 1907 尼姆博弈

題意 sample input 2 3 3 5 1 1 1 sample output john brother 給你 t組案例,給你n堆 下面n堆每堆有多個a個 每次取1 a個,最後取完的輸掉 解 關於尼姆博弈,玄學 什麼時間一定輸 1,奇數個1 2,存在a 1 面對xor和為0 xor和為零代表...