hdu 2177 取 2堆 石子遊戲

2021-06-17 21:41:43 字數 572 閱讀 3891

威佐夫博弈變異,要求輸出能贏的售後第一次能取得情況。

3.一定存在規則允許的某種操作可將必勝點移動到必敗點;

證明:以某個必勝點(i,j)為例。因為所有自然數都會出現在某個必敗點中,故要麼i等於m(k),要麼j等於n(k)。若i=m(k),j>n(k),可從j中取走j-n(k)個石子到達必敗點;若i=m(k),jm(k),j=n(k),可從i中取走i-m(k)個石子到達必敗點;

若i=m(k),j>n(k),可從j中取走j-n(k)個石子到達必敗點;若i=m(k),jm(k),j=n(k),可從i中取走i-m(k)個石子到達必敗點;若i

判斷乙個點是不是必敗點的公式與**分割有關,為:

m(k) = k * (1 + sqrt(5))/2

n(k) = m(k) + k

#include#include#include#includeusing namespace std;

int main(){

int i,n,m,k;

while(~scanf("%d %d",&n,&m)){

if(n==0&&m==0)

break;

if(n

hdu 2177 取 2堆 石子遊戲

天資愚笨啊,網上的一大堆沒看懂。總結百科的方法為 1.a b 同時減去a 得到0,0 2.a a k b b k b b b k 3.a a k b同時拿走a k a b a k 得到 a b a k a b a k b a k 4.a a k b b k 從a中拿走 a a k 5.a5.1 a ...

HDU 2177 取 2堆 石子遊戲

有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆中取走任意多的石子 二是可以在兩堆中同時取走相同數量的石子。最後把石子全部取完者為勝者。現在給出初始的兩堆石子的數目,如果輪到你先取,假設雙方都採取最好的策略,問最後你是勝者還是敗者。如果...

取 2堆 石子遊戲 hdu2177

有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆中取走任意多的石子 二是可以在兩堆中同時取走相同數量的石子。最後把石子全部取完者為勝者。現在給出初始的兩堆石子的數目,如果輪到你先取,假設雙方都採取最好的策略,問最後你是勝者還是敗者。如果...