題目描述
小k沒事幹,他要搬磚頭,為了達到較好的**效果,教練規定的方式很特別:輸入要求每一次,小k可以把兩堆磚頭合併到一起,消耗的體力等於兩堆磚頭的重量之和。 經過 n-1次合併後,
就只剩下一堆了。小k在搬磚頭時總共消耗的體力等於每次合併所耗體力之和。小k為了偷懶,希望耗費的體力最小。 例如有 3堆磚頭,數目依次為
1、2、9 。可以先將 1 、 2 堆合併,新堆數目為3 ,耗費體力為 3 。接著,將新堆與原先的第三堆合併,又得到新的堆,數目為 12
,耗費體力為12 。所以總共耗費體力 =3+12=15。可以證明 15為最小的體力耗費值。
共兩行。 第一行是乙個整數 n(1≤n≤1000) ,表示磚頭堆數。 第二行n個整數,每個整數表示每堆磚頭的磚頭塊數。輸出要求
乙個整數,也就是最小的體力耗費值。輸入樣例
3輸出樣例 貪心演算法,每次都選擇最小的兩個數,進行組合。1 2 9
#include
#include
#include
#include
#include
using namespace std;
const
int maxn=
20005
;int l[maxn]
;int
main()
else
if(l[i]
int t=l[min1]
+l[min2]
; ans+
=t;if
(min1==n-1)
swap
(min1,min2)
; l[min1]
=t; l[min2]
=l[n-1]
; n--;}
printf
("%lld\n"
,ans)
;return0;
}
貪心 02 貪心演算法題目解析
122.買賣 的最佳時機 ii 134.加油站 給定乙個陣列,它的第 i 個元素是一支給定 第 i 天的 設計乙個演算法來計算你所能獲取的最大利潤。你可以盡可能地完成更多的交易 多次買賣一支 注意 你不能同時參與多筆交易 你必須在再次購買前 掉之前的 示例 1 輸入 7,1,5,3,6,4 輸出 7...
oj 75 貪心演算法
include include include using namespace std struct sadata 1001 intcmp const sa a,const sa b intmain sort data,data n,cmp for i 0 i else printf 3f n su...
貪心演算法及相關題目(一)
一 貪心演算法概念 貪心演算法通過做出一系列選擇來求出問題的最優解,在每個決策點,它做出在當時看來最佳的選擇。由此可見,貪心演算法並不從整體最優考慮,它所作出的選擇只是在某種意義上的區域性最優選擇,但是對許多問題它都所得到的解都是全域性最優解。二 相關題目 第一題 sicily 1198.subst...