石子合併問題

2021-08-20 07:43:53 字數 1184 閱讀 2484

石子合併

時限:10

00ms 記憶體限制:10000k  總時限:3000ms

描述在乙個圓形操場的四周擺放著n堆石子(n<= 100),現要將石子有次序地合併成一堆。規定每次只能選取相鄰的兩堆合併成新的一堆,並將新的一堆的石子數,記為該次合併的得分。編一程式,讀入石子堆數n及每堆的石子

數(<=20)。編一程式,讀入石子堆數n及每堆的石子數(<=20)。選擇一種合併石子的方案,使得做n-1次合併,得分的總和最小和最大; 比如有4堆石子:4 4 5 9 則最佳合併方案如下:

4 4 5 9 score: 0

8 5 9 score: 8

13 9 score: 8 + 13 = 21

22 score: 8 + 13 + 22 = 43

4 4 5 9 score: 0

4 4 14 score: 14

4 18 score: 18 + 14 = 32

22 score: 18 + 14 + 22 = 54

輸入可能有多組測試資料。 當輸入n=0時結束! 第一行為石子堆數n(1<=n<=100); 第二行為n堆的石子每堆的石子數,每兩個數之間用乙個空格分隔。

輸出合併的最小得分,每個結果一行。

輸入樣例

4 4 4 5 9 0

輸出樣例

石子合併問題

在乙個圓形操場的四周擺放著n堆石子。現要將石子有次序地合併成一堆。規定每次只能選相鄰的2堆石子合併成新的一堆,並將新的一堆石子數記為該次合併的得分。試設計乙個演算法,計算出將n堆石子合併成一堆的最小得分和最大得分。分析 假設有n堆石子需要合併,可以設計乙個2 n 1個元素的陣列來儲存每堆石子的個數。...

石子合併問題

在乙個圓形操場的四周擺放著n堆石子。現要將石子有次序地合併成一堆。規定每次只能選相鄰的2堆石子合併成新的一堆,並將新的一堆石子數記為該次合併的得分。試設計乙個演算法,計算出將n堆石子合併成一堆的最小得分和最大得分。沒有用dp 感覺一般的也能寫,時間複雜度也不高。include include inc...

石子合併問題

石子合併問題是最經典的dp問題。首先它有如下3種題型 1 有n堆石子,現要將石子有序的合併成一堆,規定如下 每次只能移動任意的2堆石子合併,合併花費為新合成的一堆石子的數量。求將這n堆石子合併成一堆的總花費最小 或最大 分析 當然這種情況是最簡單的情況,合併的是任意兩堆,直接貪心即可,每次選擇最小的...