人活著系列之尋找最完美的人生 2937
阿新 • • 發佈:2018-12-02
人活著系列之尋找最完美的人生
Problem Description
也許,人活著就是要嘗試人世間的酸甜苦辣,喜怒哀樂,經歷從嬰兒到老人的一個過程吧!能看,能想,能愛,能恨,這就是活人與死人的區別。不要想著死後會怎樣,誰也不知道。所以要好好的活著,寬待自己,好好珍惜身邊的人!
現在,上帝之手寬恕與你。把你人生中所要經歷的所有的酸甜苦辣全部擺在你的面前。你一生需要經歷n種事情。每種事情都有一個權值x。上帝給了你n-1個時光隧道。你可以把時光隧道放在任意兩種事情的中間,如果你把時光隧道放在a,b中間,那麼你需要花費3*(xa+xb)+7 。現在,你需要把這n-1個時光隧道連在n種事情中間,使得任意兩種事情都會相連,並且花費最小。輸出最小花費。
Input
首先輸入一個數T,代表有T組資料。
接下來一行輸入一個數n。
接下來的一行輸入n個數,第i個數代表第i種事情的權值。
n<=1000,每種事情的權值<=100000;
T<=60
Output
輸出T行,每行輸出最小花費。
Sample Input
1
2
1 2
Sample Output
16
//int find(int x)
//{
// if(x!=f[x])
// {
// f[x]=find(f[x]);
// }
// return f[x];
//}
//void join(int x,int y)
//{
// x=find(x);
// y=find(y);
// if(x!=y)
// {
// f[y]=x;
// }
//}
#include <stdio.h>
#include <stdlib.h>
int a[1100];
int cmp(const void *a,const void *b)
{
return *(int *)a - *(int *)b;
}
int main()
{
int t,n,i,s;
scanf("%d",&t);
while(t--)
{
s=0;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
qsort(a,n,sizeof(a[0]),cmp);
for(i=1;i<n;i++)
{
s=s+(a[0]+a[i])*3+7;
}
printf("%d\n",s);
}
return 0;
}