分果實問題

2021-08-20 19:52:53 字數 1545 閱讀 9003

搬果實

time limit:1000ms  memory limit:65536k

total submit:968 accepted:118

description

在乙個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆,只有相鄰的兩堆可以合併。

每一次合併,多多可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可以看出,所有的果子經過n-1次合併之後,就只剩下一堆了。多多在合併果子時總共消耗的體力等於每次合併所耗體力之和。

因為還要花大力氣把這些果子搬回家,所以多多在合併果子時要盡可能地節省體力。假定每個果子重量都為1,並且已知果子的種類數和每種果子的數目,你的任務是設計出合併的次序方案,使多多耗費的體力最少,並輸出這個最小的體力耗費值。

input

輸入包括兩行,第一行是乙個整數n(1

output

包括一行,這一行只包含乙個整數,也就是最小的體力耗費值。

sample input

3

1 2 9

sample output

15
思路解析:先用陣列arr[ ]儲存果子的數量

利用區域dp我們建立乙個陣列dp[i][j],i代表從第幾堆開始,j代表到第幾堆結束,用這個陣列來儲存最優解

然後我們可以想:

當只有一堆的時候,就是i=j  :  那麼合併時就是這堆的值dp[i][j]=arr[i]

當有兩堆的時候 : 就是這兩堆的和

當有三堆的時候 : 比如  1  2  9,那麼就是兩種方法,先是1  2合併變成 3  9,然後在3和9合併,這樣的總和就是(1+2)+(1+2+9),也就是dp[1][2]+sum  ( 這裡k是乙個結點,需要從i迴圈到j,然後sum表示i到j的總和 )。還有一種就是2和9先合併,然後合併1和11,這樣就是dp[2][3]+sum

所以當有n堆的時候,可以利用k從i迴圈到j

所以得出狀態轉移方程:

勝利的果實

勝利的果實 左直拳在學校的時候,有一次我見到一位女生鼻子上長了顆青春痘,覺得既驚奇又搞笑。眾所周知,粉刺通常會長在臉頰 額頭,有時也會出現在頸背。記得我處於青春期時,滿臉都是,密密麻麻,看上去好象乙個狼牙棒,或者是榴蓮。也有比較特殊的,比如我們班乙個同學,聽說他的粉刺全長在屁股上。由於認為有新聞價值...

名片效果實現

模仿qq空間 微博等滑鼠懸浮在人名上時,顯示使用者詳細資訊 大體思路是將名片卡隱藏在頁面中,當懸浮時將名片卡移動到滑鼠邊,滑鼠移開時隱藏名片卡。本文的js使用了jquery 使用者名稱跟名片卡 如下 只是為了顯示類名,具體內容按需補充 使用者名稱 js 如下 var showmsgcardcontr...

抽屜效果實現

import viewcontroller.h define maxy 60 inte ce viewcontroller property nonatomic,weak uiview mainview property nonatomic,weak uiview leftview property...