區間dp的一般思考方式是:先列舉長度,再列舉開頭和結尾,再列舉中間的分割點
環形區間dp一般是把環展開成鏈後複製成兩倍,再做線性的區間dp
1068. 環形石子合併
將 n 堆石子繞圓形操場排放,現要將石子有序地合併成一堆。規定每次只能選相鄰的兩堆合併成新的一堆,並將新的一堆的石子數記做該次合併的得分。
請編寫乙個程式,讀入堆數 n 及每堆的石子數,並進行如下計算:
選擇一種合併石子的方案,使得做 n−1 次合併得分總和最大。
選擇一種合併石子的方案,使得做 n−1 次合併得分總和最小。
輸入格式
第一行包含整數 n,表示共有 n 堆石子。
第二行包含 n 個整數,分別表示每堆石子的數量。
輸出格式
輸出共兩行:
第一行為合併得分總和最小值,
第二行為合併得分總和最大值。
資料範圍
1≤n≤200
輸入樣例:
44 5 9 4
輸出樣例:
4354
#includeusing namespace std;
const int n=401;
int w[n],f[n][n],g[n][n],sum[n];
int main()
for(int i=1;i<=2*n;++i) sum[i]=sum[i-1]+w[i];
for(int len=2;len<=n;++len)}}
int ans1=0x3f3f3f3f,ans2=-0x3f3f3f3f;
for(int i=1;i<=n;++i)
cout<320. 能量項鍊
在mars星球上,每個mars人都隨身佩帶著一串能量項鍊,在項鍊上有 n 顆能量珠。
能量珠是一顆有頭標記與尾標記的珠子,這些標記對應著某個正整數。
並且,對於相鄰的兩顆珠子,前一顆珠子的尾標記一定等於後一顆珠子的頭標記。
因為只有這樣,通過吸盤(吸盤是mars人吸收能量的一種器官)的作用,這兩顆珠子才能聚合成一顆珠子,同時釋放出可以被吸盤吸收的能量。
如果前一顆能量珠的頭標記為m,尾標記為r,後一顆能量珠的頭標記為 r,尾標記為 n,則聚合後釋放的能量為 mrn(mars單位),新產生的珠子的頭標記為 m,尾標記為 n。
需要時,mars人就用吸盤夾住相鄰的兩顆珠子,通過聚合得到能量,直到項鍊上只剩下一顆珠子為止。
顯然,不同的聚合順序得到的總能量是不同的,請你設計乙個聚合順序,使一串項鍊釋放出的總能量最大。
例如:設n=4,4顆珠子的頭標記與尾標記依次為(2,3) (3,5) (5,10) (10,2)。
我們用記號⊕表示兩顆珠子的聚合操作,(j⊕k)表示第 j,k 兩顆珠子聚合後所釋放的能量。則
第4、1兩顆珠子聚合後釋放的能量為:(4⊕1)=1023=60。
這一串項鍊可以得到最優值的乙個聚合順序所釋放的總能量為((4⊕1)⊕2)⊕3)= 1023+1035+10510=710。
輸入格式
輸入的第一行是乙個正整數 n,表示項鍊上珠子的個數。
第二行是n個用空格隔開的正整數,所有的數均不超過1000,第 i 個數為第 i 顆珠子的頭標記,當i思路:對於樣例\((2,3) (3,5) (5,10) (10,2)\),可以模擬成\(2,3,5,10,2\),即變成乙個n+1長度的鏈,合併的最小區間長度是3,被合併的最小區間是2,答案是\(max(f[i][i+n])\),以及在有乙個交集的區間上做合併,於是環形問題就模擬成\(2,3,5,10,2,3,5,10\),狀態轉移方程\(f[l,r]=max(f[l][k]+f[k][r]+w[l]*w[k]*w[r]),k>l,k
#includeusing namespace std;
const int n=210;
int w[n],f[n][n];
int main()}}
int res=0;
for(int i=1;i<=n;++i)cout
}
環形區間DP 環形石子合併
在乙個園形操場的四周擺放n堆石子,現要將石子有次序地合併成一堆.規定每次只能選相鄰的2堆合併成新的一堆,並將新的一堆的石子數,記為該次合併的得分。試設計出1個演算法,計算出將n堆石子合併成1堆的最小得分和最大得分.輸入輸出格式 輸入格式 資料的第1行試正整數n,1 n 100,表示有n堆石子.第2行...
環形石子合併(區間DP)
題目描述 將 n 堆石子繞圓形操場排放,現要將石子有序地合併成一堆。規定每次只能選相鄰的兩堆合併成新的一堆,並將新的一堆的石子數記做該次合併的得分。請編寫乙個程式,讀入堆數 n 及每堆的石子數,並進行如下計算 選擇一種合併石子的方案,使得做 n 1 次合併得分總和最大。選擇一種合併石子的方案,使得做...
能量項鍊 環形區間dp
題目鏈結 在mars星球上,每個mars人都隨身佩帶著一串能量項鍊。在項鍊上有n顆能量珠。能量珠是一顆有頭標記與尾標記的珠子,這些標記對應著某個正整數。並且,對於相鄰的兩顆珠子,前一顆珠子的尾標記一定等於後一顆珠子的頭標記。因為只有這樣,通過吸盤 吸盤是mars人吸收能量的一種器官 的作用,這兩顆珠...