其實這個感覺是一眼題,只不過我真心太菜了。
題目已經告訴你了,有m段,n個數字,那麼我們就只需要dp[m][n]即可,然後最後的答案肯定是dp[m]的那一行,所以其他行都是沒有用的,因為我們可以把dp[m][n]變成dp[2][n]即可。
然後轉移方程式dp[i][j] = max(dp[i][j - 1], max(dp[i-1][k])) + a[j];其中i-1前面這個表示分成i份,其中最大的乙份加上dp[j]
後面這個表示在分成i-1份的時候,然後得出k位中最大的,然後再讓a[j]單獨成為乙份。
記住dp[i]的時候是只有dp[前一位][i-1]+a[i]的
HDU 1204 糖果大戰 Markov過程
題意 生日party結束的那天晚上,剩下了一些糖果,gandon想把所有的都統統拿走,speakless於是說 可以是可以,不過我們來玩24點,你不是已經拿到了一些糖果了嗎?這樣,如果誰贏一局,就拿走對方一顆糖,直到拿完對方所有的糖為止。如果誰能算出來而對方算不出來,誰就贏,但是如果雙方都能算出或者...
hdu 1520 樹形DP基礎
父節點和子節點不能同時選。首先是建樹,這個在之前的樹形揹包裡有講 因為這裡沒有指定根節點,所以可以建雙向邊,這樣就可以從任乙個點出發遍歷 接下來是dp,狀態轉移方程 dp fa 0 max dp son 0 dp son 1 dp fa 1 dp son 0 include include incl...
HDU 3555 Bomb 基礎數字dp
題意大致就是說給你乙個數n,要你求0 n之間含有49的數的個數 理解題意很簡單下面就直接貼 了 include include include includeusing namespace std int64 dp 21 4 int a 1000 void init int main int g 0...