HDU 2897 邂逅明下 簡單博弈)

2022-01-10 05:33:12 字數 631 閱讀 3181

題目大意

就是現在一堆石子有n顆, 每次只能拿走p~q顆, 當剩餘少於p顆的時候必須一次拿完

拿走最後一顆的人敗

問誰會獲得勝利

大致思路:

首先不難發現當n <= p的時候是必敗點(p點),那麼對於p + 1 <= n <= p + q, 這些都都可以轉移到必敗點(p點), 他們都是必勝點(n點), 而對於\(p + q + 1 <= n <= 2*p + q\) , 治呢走到必勝點(n點), 那麼這些都是必敗點(p點), 然後$ 2p + q + 1 <= n <= 2p + 2*q$都是必勝點(n點)

以此類推所有\(k*(p + q) + 1 <= n <= k*(p + q) + p\)的都是必勝點(p點, 先手敗), 所有\(k*(p + q) + p + 1 <= n <= (k + 1)*(p + q)\)的都是必敗點(n點, 先手勝)

ac**:

#includeusing namespace std;

int n, p, q;

string answer[2] = ;

int main()

}

HDU 2897 邂逅明下

題意 一堆石子n個,a,b兩人輪流從中取,每次取的石子必須在 區間 p,q 內,若剩下的石子少於p個,取石者須全部取完。最後取石子的者輸。給出n,p,q,問先取者是否有必勝策略?思路 巴什博弈變形 證明 假設先手為a,後手為b,初始n個,除最後一次每次取的石子個數必須 在 區間 p,q 內,則 1....

HDU 2897 邂逅明下

題意是給n個錢幣,每個人最少取p顆,最多q顆,少於p顆時必須全部全完,取最後一下的人輸,判斷先手是贏還是輸。完全就是那個取1 m的模型的類推,把1換成p,m換成q,於是用類似的做法解決。include include include include include include include i...

HDU2897 邂逅明下

problem description 當日遇到月,於是有了明。當我遇到了你,便成了侶。那天,日月相會,我見到了你。而且,大地失去了光輝,你我是否成侶?這注定是個淒美的故事。以上是廢話 小t和所有世俗的人們一樣,期待那百年難遇的日食。駐足街頭看天,看日月漸漸走近,小t的脖子那個酸呀 他堅持這個姿勢已...