1588 合併果子

2021-08-21 10:17:26 字數 662 閱讀 3679

time limit: 1 sec

memory limit: 128 mb

submitted: 1729

solved: 783

現在有n堆果子,第i堆有ai個果子。現在要把這些果子合併成一堆,每次合併的代價是兩堆果子的總果子數。求合併所有果子的最小代價。

第一行包含乙個整數t(t<=50),表示資料組數。

每組資料第一行包含乙個整數n(2<=n<=1000),表示果子的堆數。

第二行包含n個正整數ai(ai<=100),表示每堆果子的果子數。

每組資料僅一行,表示最小合併代價。

2

41 2 3 4

53 5 2 1 4

19

33

似乎有點像是構造哈夫曼樹的過程。每次選最小的兩個數,刪除這兩個數並將兩個數的和加入進去。

#include#includeusing namespace std;

int main()

int a, b, c, num = 0;

while (pq.size() >= 2)

pq.pop();

cout << num << endl;

} return 0;

}

CSU 1588 合併果子

submit page summary time limit 1 sec memory limit 128 mb submitted 1351 solved 580 現在有n堆果子,第i堆有ai個果子。現在要把這些果子合併成一堆,每次合併的代價是兩堆果子的總果子數。求合併所有果子的最小代價。第一行包...

合併果子 CSU 1588

現在有n堆果子,第i堆有ai個果子。現在要把這些果子合併成一堆,每次合併的代價是兩堆果子的總果子數。求合併所有果子的最小代價。input 第一行包含乙個整數t t 50 表示資料組數。每組資料第一行包含乙個整數n 2 n 1000 表示果子的堆數。第二行包含n個正整數ai ai 100 表示每堆果子...

CSU 1588 合併果子

現在有n堆果子,第i堆有ai個果子。現在要把這些果子合併成一堆,每次合併的代價是兩堆果子的總果子數。求合併所有果子的最小代價。第一行包含乙個整數t t 50 表示資料組數。每組資料第一行包含乙個整數n 2 n 1000 表示果子的堆數。第二行包含n個正整數ai ai 100 表示每堆果子的果子數。每...