2012 Multi-University Training Contest 9[hdu4380~4389]

hdu 4386 Quadrilateral

公式 或三分法枚舉任意2邊爲臨邊的對角線。


hdu 4388 Stone Game II 博弈 , 很好的題

比賽的時候由於4387卡住了, 而且4388的操作又太複雜, 所以沒太仔細去分析題目的本質,

題目大致的意思是初始n堆石子 沒人輪流選一堆石子進行操作, 該堆石子的總數設爲a, 要求拿走一定數量的石子, 使其剩餘k個, 並且k<a 且 k^a<a, 之後在增加一堆石子爲k^a,最先不能爲者負。

首先分析每次操作的變化的本質, 一個a堆的石子變成了 k和k^a 且 這兩堆都小於a ,所以我們可以得到一個結論, 分開後的兩堆, 在二進制下含1個數的奇偶性是不變的;

且除了1人且一次的特殊操作, 2個堆的個數都在減少, 而且當剩餘每堆都爲2的次方時遊戲就可以結束了, 因此遊戲是可終止的。(後面給出簡易證明)

分析:

先分析只有一堆的情況

由於是異或操作不妨寫成二進制 ,

eg . a= 1010

滿足條件的k:1000, 0010,,0011, 1100……

對應的k^a   : 0010, 1000,1001, 0110……

其中前兩種分解後對方就處於必敗態,故可知a是必勝態 ,可以猜想a中1的個數爲偶數時, 先手必勝

對於第三種分解,此時的先手只能選擇將1100或0110分解, 因此仍是必敗態,前狀態的先手還是必勝態, 故這種分解是不影響結果的平衡狀態操作。 

故影響勝負的操作是使a分成2個1的個數和與a相等的操作。

異或操作保證了 a變成k和k^a後1的個數的奇偶性是不變的。

題意的轉化:對於原石子的a1, a2, a3……用其含1的個數代替, b1, b2, b3,……每次選擇一個bi將其分解爲2個大於0的數, 最先不能爲者負, 這就轉化成我們熟悉的模型了, 只需考慮總堆數和sum(bi)的奇偶性就可以了。

結論, 有n個數, 設cnt爲所有數在二進制下1的總個數, n+cnt爲奇數時,先手勝, 否則爲負

代碼不貼了。。。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章