現在有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 表示每堆果子的果子數。每...