POJ 2231 Moo Volume(规律)

来源:互联网 发布:淘宝退款运费险退哪里 编辑:程序博客网 时间:2024/05/16 12:53

POJ2231

题意就是计算任意两个牛之间的距离总和,暴力的话是会超时的.

所以,优化呢。。。没找到方法,无奈了,看了下题解,各种找规律啊,我去,我可是一点规律没发现啊,一组样例就可以,找规律这方面能力还是太弱啊

<span style="font-size:14px;">/*POJ2231 Moo Volume完全各种规律啊,好吊的样子,我找规律的能力有待提升啊,其实也不是那么难找,毕竟高中的数学训练底子还是有点的看样例(提前排序)0~5     对应的是1 2 3 4 5然后 a[i] 到 a[j] 的距离,我们可以只计算单向的距离,然后加和以后再乘以2那么总和就是2*sumsum+=(n-i-1)*(a[n-i-1]-a[i])*/#include<iostream>#include<cstdio>#include<algorithm>using namespace std;long long a[10005];int main(){    int n;    cin>>n;    for(int i=0;i<n;i++)        scanf("%lld",&a[i]);    sort(a,a+n);    long long sum=0;    for(int i=0;i<n;i++)    {        sum+=(n-i-1)*(a[n-i-1]-a[i]);    }    printf("%lld\n",sum*2);    return 0;}</span>


0 0