誰要的資料結構作業

2021-10-02 21:32:28 字數 848 閱讀 3789

舉神和ww經常在一起玩關於石子的遊戲,今天他們又發明了一種新的玩法,每次他們兩個可以把兩堆石子合併得到一堆更重的石子,但需要消耗與這兩堆石子相同重量的體力。 比如:舉神和ww把重量為3和5的石子堆合併,可以得到乙個重量為8的石子堆,但同時需要消耗3+5的體力值。 現在他兩想把n堆石子合併到只剩下一堆,但他們又不想消耗太多體力,你能幫他們求出消耗的最少體力嗎? 資料範圍:n<=20000

input

第一行為乙個整數n,表示開始時石子的總堆數 ,接下來n行,每行乙個整數a[i] (1<=a[i]<=50000) 代表開始時每堆石子的重量。

output

輸出包含乙個整數,表示他們消耗的最小體力。

sample input

385

8

sample output

ac**:優先佇列知識戳?佇列及優先佇列及棧簡單用法

#include

#include

//標頭檔案

using

namespace std;

intmain()

while

(p.size()

>1)

cout

}

永遠相信美好?

資料結構作業

一,思維導圖 二,概念筆記 1,在計算時間複雜度的時候一般有 o 1 2 n 2,在計算平均時間複雜度時對p i t i 求和,其中p i 是概率,t i 是每個i的時間複雜度。3,儲存密度等於節點中個元素所佔的儲存量除以結點所佔的儲存量,儲存密度越大儲存空間的利用率越高。4,每次出棧只能出棧棧頂元...

資料結構作業 2

題目 設有乙個線性表 a0,a1,an 2,an 1 存放在單鏈表中。試編寫乙個演算法將該線性表原地逆置,即利用原結點空間置換為 an 1,an 2,a1,a0 並分析該演算法的時間複雜度。1 需求分析 1 用單鏈表存放乙個線性表 a0,a1,an 2,an 1 2 將該線性表原地逆置,即利用原結點...

資料結構作業 7

題目 編寫遞迴演算法,計算二叉樹中葉子結點的數目。1 需求分析 使用遞迴的方法,實現二叉樹中葉子節點數量的計算。輸入 一顆樹的前序遍歷,用 代替結束符。例如,前序遍歷 ab c d 輸出 二叉樹的葉子節點個數。功能 計算輸入的二叉樹的葉子節點個數。2 概要設計 二叉樹定義 資料 左孩子 或為空,或為...