题目链接
看这道题的边权计算,将绝对值去掉发现,边权为两个顶点中较大的两倍,那么这样就可以快速计算出最短路径
将输入的每一个顶点权值排序,排序对结果不影响。
从1顶点开始,连接该点的边权都是另一个点的2倍。
2顶点,连接该点的边权只有和1相连为2顶点的2倍,其他都是另一个点的2倍。
3顶点,连接该点的边权只有和1,2相连为3顶点的2倍,其他都是另一个点的2倍。
…
#include<iostream>
#include<algorithm>
#define int long long
using namespace std;
signed main(){
int T;cin>>T;
while(T--){
int n;cin>>n;int a[n+2];
for(int i=1;i<=n;i++) cin>>a[i];
int ans=0;sort(a+1,a+1+n);
for(int i=2;i<=n;i++) ans+=(i-1)*a[i]*2*2;
cout<<ans<<endl;
}
}