合併果子 CSU 1588

2021-10-01 01:49:21 字數 606 閱讀 2739

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

input

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

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

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

output

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

sample input24

1 2 3 4

53 5 2 1 4

sample output

1933

思路:每次進行排序,排序後把最小的兩個合成一堆,利用sum來儲存總代價,s儲存每次合併的代價。

#include #includeusing namespace std;

int main()

sort(a, a + t);

int s = a[0];

int sum = 0;

for (int i = 0; i < t; i++)

cout << sum << endl;

}}

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個果子。現在要把這些果子合併成一堆,每次合併的代價是兩堆果子的總果子數。求合併所有果子的最小代價。第一行包含乙個整數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 表示每堆果子的果子數。每...