排成一條線的紙牌博弈問題

2021-09-25 10:58:36 字數 500 閱讀 1838

問題描述:

給定乙個整型陣列,代表數值不同的紙牌排成一條線。玩家a和玩家b依次拿走每張紙牌,規定玩家a先拿,玩家b後拿。但是每個玩家每次只能拿走最左或者最右的紙牌,玩家a和b都絕頂聰明,請返回最後獲勝者的分數。

解答:定義乙個函式:func(int arr)用來表示最優結果,那麼針對第乙個人是先拿第一張牌還是最後一張牌,分別處理一下。

package dynamicandrecursive;

public class puke

if(start == end)else

if ((value - puke(arr,start + 1,end)) >= (value - puke(arr,start,end - 1)))else}}

public static void main(string args);

system.out.print(puke(arr,0,arr.length - 1));

}}

動態規劃 排成一條線的紙牌博弈問題

題目 給定乙個整型陣列arr,代表數值不同的紙牌排成一條線。玩家a和玩家b依次拿走每張紙牌,規定玩家a先拿,玩家b後拿,但是每個玩家每次只能拿走最左或最右的紙牌,玩家a和玩家b都絕頂聰明。請返回最後獲勝者的分數。舉例 arr 1,2,100,4 開始時玩家a只能拿走1或4。如果玩家a拿走1,則排列變...

動態規劃 排成一條線的紙牌博弈等問題

有乙個整型陣列a,代表數值不同的紙牌排成一條線。玩家a和玩家b依次拿走每張紙牌,規定玩家a先拿,玩家b後拿,但是每個玩家每次只能拿走最左或最右的紙牌,玩家a和玩家b都絕頂聰明,他們總會採用最優策略。請返回最後獲勝者的分數。給定紙牌序列a及序列的大小n,請返回最後分數較高者得分數 相同則返回任意乙個分...

排成一條線的硬幣博弈問題

面值為正數的硬幣放置成一排,玩家1和玩家2輪流拿走硬幣,規定每個玩家在拿硬幣時,只能拿走最左或最右的硬幣。例如 硬幣面值與排列為 1,2,3,4,5,現在輪到玩家1拿硬幣。在當前狀態下,玩家1只能拿走1或5,如果玩家1拿走1,則排列變為2,3,4,5,那麼接下來玩家2可以拿走2或5,然後繼續輪到玩家...