能量項鍊 (區間DP)

2022-05-20 23:19:08 字數 621 閱讀 4612

能量項鍊 洛谷 p1063

諸如此類不能線性規劃的問題要用到區間dp,區間dp一般就是三層迴圈,第一層表示區間長度(本題即\(n\)),第二層列舉起點並根據第一層區間長度算出區間終點,第三層便在當前區間內列舉決策(即哪兩個合併)

本題由於是環,還需破環為列,可以開兩倍大的陣列,即\(a[i]=a[i+n]\),便可在第n顆珠子時求到第1顆珠子的頭標記(也即第n顆珠子的尾標記)

合併珠子即合併左珠\(dp[i][k]\)和右珠\(dp[k+1][j]\),釋放能量\(a[i]*a[k+1]*a[j+1]\)(注意\(a[i]\)存放的是第i顆珠子的頭標記,所以\(a[k+1]\)才是第k個珠子的尾標記)

#include #define maxn 202

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

using namespace std;

int n,a[maxn],dp[maxn][maxn],ans;

int main()

for(int i=1;i<=n;i++)//列舉可能的答案

ans=max(dp[i][i+n-1],ans);

cout

}

區間dp 能量項鍊

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

區間DP 能量項鍊

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

區間dp(能量項鍊)

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