HDU 1536 S Nim 尼姆博弈

2021-06-21 01:56:53 字數 1065 閱讀 2576

尼姆博弈。

題目說的很亂,其實比較簡單,打個sg表就行了。

錯了幾次。哎。模版都沒用明白。具體看這裡吧。

今天下午(2014.4.14)重新做了下這道題 ,感覺用遞迴寫sg函式更好理解。

#include #include #include #include //#define test

using namespace std;

const int max_n = 10000 + 20;

//f:可以取走的石子個數

//sg:0~n的sg函式值

//hash:mex{}

int f[110],sg[max_n],hash[110];

int k,m,t;

void getsg()

中未出現的最小的非負整數}}

}int main()

sort(f + 1,f + k + 1);

getsg();

cin >> t;

while(t--)

if(ans)

cout << "w";

else

cout << "l";

}cout << endl;

}return 0;

}

#include #include #include #include //#define test

using namespace std;

const int max_n = 10000 + 20;

int f[110],sg[max_n];

int k,m,t;

int get_sg(int h)

}int main()

sort(f + 1,f + k + 1);

cin >> t;

while(t--)

if(ans)

cout << "w";

else

cout << "l";

}cout << endl;

}return 0;

}

博弈 尼姆博弈

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

hdu1730尼姆博弈

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

hdu1729尼姆博弈

尼姆博弈 對於n堆石子輪流取,先取完者勝,和這道題蠻像的 將這道題改造成尼姆博弈然後進行位運算 原題意為s個石子,取小於原有石子c的平方數個石子 轉為每堆任意取小於find s,c 個石子 int find int s,int c 這一段,有很多講解的,看了。半懂半不懂 任意數p,p p p要小於s...