TYVJ P1055 沙子合併

2022-08-16 03:12:12 字數 1194 閱讀 3287

沙子合併

描述 description

設有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;問題是:找出一種合理的方法,使總的代價最小。輸出最小代價。

輸入格式 inputformat

第一行乙個數n表示沙子的堆數n。

第二行n個數,表示每堆沙子的質量。 <=1000

輸出格式 outputformat

合併的最小代價

樣例輸入 sampleinput [複製資料]

4

1 3 5 2

樣例輸出 sampleoutput [複製資料]

22

題解:簡單的區間型別動態規劃

**:

1 #include2

3int

4 min(int x,inty)5

910int11 main(void)12

2324

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

26for(j=1;j<=n-i;j++)

27

3334 printf("

%d\n

",a[1

][n]);

35return0;

36}3738

TYVJ 1055 沙子合併

設有n堆沙子排成一排,其編號為1,2,3,n n 300 每堆沙子有一定的數量,可以用乙個整數來描述,現在要將這n堆沙子合併成為一堆,每次只能合併相鄰的兩堆,合併的代價為這兩堆沙子的數量之和,合併後與這兩堆沙子相鄰的沙子將和新堆相鄰,合併時由於選擇的順序不同,合併的總代價也不相同,如有4堆沙子分別為...

區間dp 合併沙子

設有n堆沙子排成一排,其編號為1,2,3,n n 300 每堆沙子有一定的數量,可以用乙個整數來描述,現在要將這n堆沙子合併成為一堆,每次只能合併相鄰的兩堆,合併的代價為這兩堆沙子的數量之和,合併後與這兩堆沙子相鄰的沙子將和新堆相鄰,合併時由於選擇的順序不同,合併的總代價也不相同,如有4堆沙子分別為...

Tyvj P1066 合併果子

描述 在乙個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆。每一次合併,多多可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可以看出,所有的果子經過n 1次合併之後,就只剩下一堆了。多多在合併果子時總共消耗的體力等於每次合併所耗體力...