1. 程式人生 > >877. DP 石子游戲

877. DP 石子游戲

亞歷克斯和李用幾堆石子在做遊戲。偶數堆石子排成一行,每堆都有正整數顆石子 piles[i] 。

遊戲以誰手中的石子最多來決出勝負。石子的總數是奇數,所以沒有平局。

亞歷克斯和李輪流進行,亞歷克斯先開始。 每回合,玩家從行的開始或結束處取走整堆石頭。 這種情況一直持續到沒有更多的石子堆為止,此時手中石子最多的玩家獲勝。

假設亞歷克斯和李都發揮出最佳水平,當亞歷克斯贏得比賽時返回 true ,當李贏得比賽時返回 false 。

由於題目的限制條件是石頭的堆數是偶數,且石頭的總數是奇數,因此Alex可以選擇一種策略總是選偶數堆或者奇數堆的石頭,則一定可以勝過Lee。簡單說,Alex在題目的條件限制下是必勝的。但這裡我們需要進行更一般化的分析,例如石頭堆數不一定是偶數,石頭總數也不一定是奇數,且不但要判斷Alex是否能贏,還要判斷最多贏多少分,如果輸,能不能提供最少輸多少分。這裡的分數是指多拿的石頭數量。

在這裡插入圖片描述