HDU 1527 2177(威佐夫博奕)

2021-07-09 13:09:09 字數 682 閱讀 1701

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

分析:假設兩堆石子的數量分別用m,n來表示,(m,n);m

#include

#include

#include

using

namespace

std;

int main()

return

0;}

2177 在1527的基礎上增加了,必勝時輸出第一次取完後,兩堆石子剩餘的情況。因為有兩種取法,我們只要分兩種情況。1、同時從兩堆中取相同的數目,只需要1-m遍歷一遍,篩選符合條件的取法 ;2、從一堆中取,從1-n,遍歷進行篩選

#include

#include

#include

using

namespace

std;

int boyi(int x,int y)

int main()

}for(int i=1;i<=b;i++)}}

}return

0;}

1072 威佐夫遊戲 威佐夫博弈模板

wythoff game 分割 先取完者贏 威佐夫博弈 每次可以從一堆中取任意個或從2堆中取相同數量的石子,但不可不取 乙個局面,讓你求是先手輸贏 差值 1.618 最小值的話後手贏,否則先手贏 乙個局面,讓你求先手輸贏,假設先手贏的話輸出他第一次的取法 首先討論在兩邊同時取的情況,很明顯兩邊同時取...

威佐夫博弈 HDU1527

有兩堆各若干個物品,兩個人輪流從某一堆或同時從兩堆中取同樣多的物品,規定每次至少取乙個,多者不限,最後取光者得勝。這種情況下是頗為複雜的。我們用 ak,bk ak bk k 0,1,2,n 表示兩堆物品的數量並稱其為局勢,如果甲面對 0,0 那麼甲已經輸了,這種局勢我們稱為奇異局勢。前幾個奇異局勢是...

hdu2177威佐夫博弈

其實就是分析一下威佐夫博弈的原理,先設小的數量的一堆是a,大的數量的一堆是b 如果 b a sqrt 5 1 2等於小的值,那麼就可以保證後手贏 那麼分析先手贏的原理便是先手拿了一次後使新的差值 sqrt 5 1 2等於小的值即可 第一次拿有兩種情況 1 如果第一次在兩堆中拿的數目相同,那麼差值是不...