网站首页内链怎么做/地推接单平台找推网
给原点到其他所有点的路径长度,问所有边权之和是多少,边权可以为负。
路径从小到大排序,当前位置右边乘(n-i)当前位置(i)及其左边,减去1,也即是减去那条直接相连的路。得到经过该差值的边数总和。
注意爆int,要加上1ll*。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e5 + 5;
ll a[maxn];
int main()
{int t, n;scanf("%d", &t);while (t--){ll ans = 0;scanf("%d", &n);for (int i = 0; i < n; i++)scanf("%lld", &a[i]);sort(a, a + n);for (int i = 1; i < n; i++){ans = ans + ((1ll * (n - i) * i) - 1) * (a[i - 1] - a[i]);//cout << "ans=" << ans << endl;}printf("%lld\n", ans);}return 0;
}