hihocoder博弈遊戲 Nim遊戲 三

2022-05-15 04:25:20 字數 710 閱讀 8884

在這一次遊戲中alice和bob決定在原來的nim遊戲上增加一條規則:每一次行動時,不僅可以選擇一堆取走任意數量的石子(至少取1顆,至多取出這一堆剩下的所有石子),還可以選擇將一堆石子分成兩堆石子,但並不取走石子。比如說有一堆石子為k個,當alice或者bob行動時,可以將這一堆石子分成兩堆,分別為x,y。滿足x+y=k,x,y>0。那麼增加了這一條規則後,在alice總先手的情況下,請你根據石子堆的情況判斷是alice會獲勝還是bob會獲勝?

對 於 每 個 堆 可以變成 0-(k-1) 或者 1(k-1)。。。(k-1) 1  sg(k)=mex;

#include #include 

#include

#include

using

namespace

std;

const

int maxn = 20005

;int

sg[maxn];

intuse[maxn];

intmain()

for(int k=1; ; k++)}}

while(scanf("

%d",&n)==1

)

if(ans)puts("

alice");

else puts("

bob"

); }

return0;

}

view code

hihoCoder 博弈遊戲 Nim遊戲

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述今天我們要認識一對新朋友,alice與bob。alice與bob總是在進行各種各樣的比試,今天他們在玩乙個取石子的遊戲。在這個遊戲中,alice和bob放置了n堆不同的石子,編號1.n,第i堆中有a i 個石子。每一次行動...

組合遊戲(博弈)

昨天看大白書翻到了組合遊戲這章,看著發覺原來是博弈論的內容,於是便看下去了。真是不看不知道,一看才知道自己的水平有多弱,不過好在還是集中精神地看了大部分。從nim遊戲 n堆石子,每人每次可以從任意一堆中取至少1個 至多整堆的石子,不能取者為輸 開始講起,引入必勝態 必敗態的概念 1.乙個狀態是必敗狀...

博弈 塗色遊戲

在乙個2 n的格仔上,alice和bob又開始了新遊戲之旅。這些格仔中的一些已經被塗過色,alice和bob輪流在這些格仔裡進行塗色操作,使用兩種塗色工具,第一種可以塗色任意乙個格仔,第二種可以塗色任意乙個2 2的格仔。每一輪遊戲裡,他們可以選擇一種工具來塗色尚未被染色的格仔。需要注意,塗色2 2的...