動態規劃 5627 石子遊戲VII

2021-10-11 23:44:08 字數 752 閱讀 5817

思路:用dp[i][j]表示i到j的區間和,用res[i][j]表示本次操作後該選手在i與j區間獲得的最大價值差,所以無論是愛麗絲還是鮑勃,在每次操作時都是為了獲得最大價值差,才能保證題意,即愛麗絲無限度擴大差值,鮑勃盡力減小差值。在最初的時候i==j,即res[i][j]=0;當j-i==1時,為了獲得最大價值差,我們刪除乙個較小的石頭,得到最大的,即res[i][j]=max(stones[i],stones[j]);當j-i>1時,最大價值差就是取刪掉左端石頭與刪掉右端石頭二者的最大值,具體的狀態方程時res[i][j]=max(dp[i+1][j]-res[i+1][j],dp[i][j-1]-res[i][j-1]),我們可以從開始時理解這個方程,i==j時res[i][j]=0,j-i==1時res[i][j]=max(stones[i],stones[j])=dp[i][j]-min(stones[i],stones[j])+res[j][j],j-i>1時res[i][j]=max(dp[i+1][j]-res[i+1][j],dp[i][j-1]-res[i][j-1]),對於dp[i+1][j]-res[i+1][j]理解成刪除左端石頭後,獲得的最大差值為當前區間和減去這次操作後下乙個人獲得的最大差值(即此時的區間和減去這次操作之後)。

class solution 

}return res[0][n-1];}};

LC5627 石子遊戲VII

區間dp 博弈論 題目描述 石子遊戲中,愛麗絲和鮑勃輪流進行自己的回合,愛麗絲先開始 有 n 塊石子排成一排。每個玩家的回合中,可以從行中 移除 最左邊的石頭或最右邊的石頭,並獲得與該行中剩餘石頭值之 和 相等的得分。當沒有石頭可移除時,得分較高者獲勝。鮑勃發現他總是輸掉遊戲 可憐的鮑勃,他總是輸 ...

動態規劃系列 877 石子遊戲

package test 動態規劃系列 877.石子遊戲 亞歷克斯和李用幾堆石子在做遊戲。偶數堆石子排成一行,每堆都有正整數顆石子 piles i 遊戲以誰手中的石子最多來決出勝負。石子的總數是奇數,所以沒有平局。亞歷克斯和李輪流進行,亞歷克斯先開始。每回合,玩家從行的開始或結束處取走整堆石頭。這種...

1406 石子遊戲 III 動態規劃

題目描述 alice 和 bob 用幾堆石子在做遊戲。幾堆石子排成一行,每堆石子都對應乙個得分,由陣列 stonevalue 給出。alice 和 bob 輪流取石子,alice 總是先開始。在每個玩家的回合中,該玩家可以拿走剩下石子中的的前 1 2 或 3 堆石子 比賽一直持續到所有石頭都被拿走。...