有如下乙個雙人遊戲: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,接下來的一行,輸...