設有n堆沙子排成一排,其編號為1,2,3,…,n(n<=300)。每堆沙子有一定的數量,可以用乙個整數來描述,現在要將這n堆沙子合併成為一堆,每次只能合併相鄰的兩堆,合併的代價為這兩堆沙子的數量之和,合併後與這兩堆沙子相鄰的沙子將和新堆相鄰,合併時由於選擇的順序不同,合併的總代價也不相同,如有4堆沙子分別為 1 3 5 2 我們可以先合併1、2堆,代價為4,得到4 5 2 又合併 1,2堆,代價為9,得到9 2 ,再合併得到11,總代價為4+9+11=24,如果第二步是先合併2,3堆,則代價為7,得到4 7,最後一次合併代價為11,總代價為4+7+11=22;問題是:找出一種合理的方法,使總的代價最小。輸出最小代價。
輸入格式:
第一行乙個數n表示沙子的堆數n。
第二行n個數,表示每堆沙子的質量。 <=1000
輸出格式:
合併的最小代價。
輸入樣例#1:
41 3 5 2
輸出樣例#1:
22
若n為非正數,輸出2147483647
看到了題目,突然覺得是個貪心。然而聽同學講是區間dp,然後我用dp在某神奇的**上交了一發就ac
60
了。其實由於玄學
wa了兩個點。
貪心是否可以做 呢,這先不管了。
#include
using namespace std;
int f[1001][1001],w[1001],n,sum[1001];
int main()
if (n<0){ cout<
洛谷 T156530 儒略曆
在 1582 年之前,以 4 為倍數的年份為閏年。正常情況下,一年中一月到十二月的天數分別是 31,28,31,30,31,30,31,31,30,31,30,31 天。如果這年是閏年,那麼二月則有 29 天。但某位皇帝發現這麼做其實不夠準確,會造成誤差,因此規定從 1582 年開始,以 4 為倍數...
洛谷T51924 忘情
二分上界有多大開多大 二分上界有多大開多大 二分上界有多大開多大 重要的事情說三遍 又被bright神仙帶著做題了 先無腦上wqs二分 我們可以把這個柿子畫一下,區間的花費就變成 sigema l r i s i 1 2了 那麼這個東西經過我艱苦的畫柿子證明是滿足四邊形不等式的 然後就和貞魚那題一樣...
洛谷T96628 統計
給定 n m 求十進位制 n 位數每個位數之積等於k的方案數 dp 高精 數學 考慮 k 0 的情況,由於可以有若干個 0 所以方案數為 sum limits times 9 考慮另外的情況,我們將 k 分解質因數,如果 k 還有除了 2 3 5 7 之外的質因數那麼方案數為 0 其餘的情況我們考慮...