hdu 2897 巴什博弈變形)

2021-06-22 05:40:42 字數 1010 閱讀 7758

轉引:巴什博弈的變形:假設先取者為

a,後取者為

b,初始狀態下有石子

n個,除最後一次外其他每次取得石子個數必須在[p,

q]之間。

若當前石子共有n =

(p+q

)*r個,則

a必勝,必勝策略為:

a第一次取

q個,以後每次若b取

k個,a取(

p+q-

k)個,如此下去最後必剩下p個給

b,所以

a必勝。 若

n =(p

+q)*r 

+left個(1

<

left 

<=p)

b必勝,必勝策略為:每次取石子活動中,若a取

k個,則b去(

p+q-

k)個,那麼最後剩下

left個給a

,此時left 

<=

p,所以

a只能一次去完,b勝。

若n =

(p+q

)*r +

left

個(p 

<

left 

<=

q),則

a必勝,必勝策略為:

a第一次取t(

1<

left –t 

<=p

)個,以後每次b取

k個,則a取(

p+q-

k)個,那麼最後留下

1<

left –t 

<=p給

b,則a勝。

1 #include2 #include3 #include4

using

namespace

std;56

intmain()else

else

16 puts("

win"

);17}18

}19return0;

20 }

巴什博弈(hdu 2897)

巴什博弈的變形 假設先取者為a,後取者為b,初始狀態下有石子n個,除最後一次外其他每次取得石子個數必須在 p,q 之間。若當前石子共有n p q r個,則a必勝,必勝策略為 a第一次取q個,以後每次若b取k個,a取 p q k 個,如此下去最後必剩下p個給b,所以a必勝。若n p q r left個...

hdu 2897 巴什博奕變形

1 看清最後取的是輸還是贏 2 分類討論,想的時候,看怎麼能回到最初狀態 就是回到t p q s的狀態,以及怎麼回到已經推出的必敗態 include include include include include include include include using namespace std...

HDU2897 巴什博奕

題目傳送門 題意見傳送門 博弈題的題解總是 簡單博弈,找規律 為什麼我就找不到規律呢 我先用sg函式寫了一遍 tle了,然後察覺到需要o1的解法 也就是找規律 題目中說到,當石頭數量小於等於p個時,只能全部取完,也就是必敗態,接下來我們用巴什博弈的pn態性質來試著遞推 題目資料範圍也比較小,模擬區間...