HLG 1376 能量項鍊

2022-05-28 13:12:12 字數 855 閱讀 8538

題意: 給你乙個 含有 n 個珠子的項鍊,規定只有相鄰的珠子才能合到一起並得到能量,合到一起的到的新的珠子,可以和其相鄰的珠子繼續合成,前後次序沒有要求,

問你最大能的到多大的能量;

分析  :用 dp[i][j]來表示從 i 到 j 合成得到的最大能量,則狀態轉移方程為

dp[i][j]=max(dp[i][j],dp[i][k]+dp[k][j]+a[i].left*a[k].right*a[j].right)

通過列舉 i 和 j 的分割點來得到 dp[i][j]的最大值。

view code

#include#include

#define max(a,b)(a)>(b)?a:b

struct

node

a[202

];int dp[203][203

];int

main()

memset(dp,

0,sizeof

(dp));

for(k=1;k)

for(i=1;i+k<=2*n;i++)

for(j=i+1;j<=i+k;j++)

dp[i][i+k]=max(dp[i][i+k],dp[i][j-1]+dp[j][i+k]+a[i].left*a[j].left*a[i+k].right);

max=0

;

for(i=1;i<=n;i++)

if(dp[i][i+n-1]>max)

max=dp[i][i+n-1

]; printf(

"%d\n

",max);

}return0;

}

HRBUST 1376 能量項鍊 DP

description 在mars星球上,每個mars人都隨身佩帶著一串能量項鍊。在項鍊上有n顆能量珠。能量珠是一顆有頭標記與尾標記的珠子,這些標記對應著某個正整數。並且,對於相鄰的兩顆珠子,前一顆珠子的尾標記一定等於後一顆珠子的頭標記。因為只有這樣,通過吸盤 吸盤是mars人吸收能量的一種器官 的...

1154 能量項鍊

題目描述 description 在mars星球上,每個mars人都隨身佩帶著一串能量項鍊。在項鍊上有n顆能量珠。能量珠是一顆有頭標記與尾標記的珠子,這些標記對應著某個正整數。並且,對於相鄰的兩顆珠子,前一顆珠子的尾標記一定等於後一顆珠子的頭標記。因為只有這樣,通過吸盤 吸盤是mars人吸收能量的一...

wikioi 能量項鍊

這是石子歸併的加強版,基本就是分治法的dp。但是有了個環,因為任何乙個位置都可開始,所以就建立2 n的陣列,然後對可能的區間遍歷一次,就是o n 3 的複雜度。中間錯誤的地方有 把dp i,j 錯誤寫成f i j k不能等於i,也不能等於j 把a i a k a j 錯寫成i k j include...