計蒜客 取數遊戲

2021-08-17 20:00:10 字數 945 閱讀 5663

有如下乙個雙人遊戲:n個正整數的序列放在乙個遊戲平台上,兩人輪流從序列的兩端取數,每次有數字被乙個玩家取走後,這個數字被從序列中去掉並累加到取走該數的玩家的得分中,當數取盡時,遊戲結束。以最終得分多者為勝。

編乙個執行最優策略的程式,最優策略就是使自己能得到在當前情況下最大的可能的總分的策略。你的程式要始終為兩位玩家執行最優策略。

輸入第1行包括乙個正整數n(2≤n≤100), 表示序列中正整數的個數。輸入第2行包含用空格分隔的n個正整數(1≤所有正整數≤200)。

只有一行,用空格分隔的兩個整數: 依次為先取數玩家和後取數玩家的最終得分。

樣例輸入

6 

4 7 2 9 5 2

樣例輸出

18 11
大神思路:

獲得gain[i][j](獲得到j最大的取值方法),

在只有兩個數字的時候,有兩種取值方法 

取第乙個數字gain[i+1][j]

取第二個數字gain[i][j-1]

選乙個最大的獲取。

是乙個自底向上的動態規劃解決方法

計蒜客 取數遊戲

有如下乙個雙人遊戲 n個正整數的序列放在乙個遊戲平台上,兩人輪流從序列的兩端取數,每次有數字被乙個玩家取走後,這個數字被從序列中去掉並累加到取走該數的玩家的得分中,當數取盡時,遊戲結束。以最終得分多者為勝。編乙個執行最優策略的程式,最優策略就是使自己能得到在當前情況下最大的可能的總分的策略。你的程式...

計蒜客 乘法遊戲

乘法遊戲是在一行牌上進行的。每一張牌包括了乙個正整數。在每乙個移動中,玩家拿出一張牌,得分是用它的數字乘以它左邊和右邊的數,所以不允許拿第1張和最後1張牌。最後一次移動後,這裡只剩下兩張牌。你的目標是使得分的和最小。例如,如果數是10 1 50 20 5,依次拿1 20 50,總分是10 1 50 ...

計蒜客 跳躍遊戲

給定乙個非負整數陣列,假定你的初始位置為陣列第乙個下標。陣列中的每個元素代表你在那個位置能夠跳躍的最大長度。請確認你是否能夠跳躍到陣列的最後乙個下標。例如 a 2,3,1,1,4 return true.a 3,2,1,0,4 return false.格式 第一行輸入乙個正整數n,接下來的一行,輸...