bash博弈變形2:初始狀態下有石子n個,除最後一次外其他每次取物品個數必須在[p,q]之間,最後一次取硬幣的人輸。(hdu 2897)
這題狀態稍微複雜一些,並且勝負條件與之前相反,一般bash博弈裡每次取個數可以看作在[1,m]之間,勝負手判斷為 n % (1+m) ,因此我們可以猜想每次取[p,q]的勝負手判斷為 n % (p+q) ,通過驗證猜想我們可以發現如下策略:
n=k∗(p+q) 時,先手第一次取 q 個,隨後的回合若後手取 x 個,先手再取 p+q−x 個,那麼最後就會留給後手 p 個,先手勝。
n=k∗(p+q)+s 時,則要分情況考慮:
若 s 在 [1,p] 之間,先手取 x,後手可以取 p+q−x ,最後留給先手 s 個,後手勝;
若 s 在 (p,p+q) 之間,先手任取 x 個 (1≤s−x
#includeusing namespace std;
int main()
return 0;
}
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的脖子那個酸呀 他堅持這個姿勢已...