码迷,mamicode.com
首页 > 其他好文 > 详细

【U1689】两两求和-洛谷

时间:2015-12-25 21:02:50      阅读:287      评论:0      收藏:0      [点我收藏+]

标签:

题目描述 Description
求a1a2+a1a3+a1a4+…+a1an+a2a3+a2a4+…+a2an+a3a4+…+a3an+…+an-2an-1+an-2an+an-1an的值。
 输入输出格式 Input/output
输入格式:
第一行,一个整数n,
第二行,n个整数,代表ai(a[i])。
输出格式:
输出一行,一个整数表达式的值。
样例测试点#3
输入样例: 在线IDE

15
3 5 6 7 9 10 11 12 14 15 17 20 23 24 26

输出样例:
18674
样例测试点#4
输入样例: 在线IDE

30
1 3 4 6 8 11 15 5 2 7 3 3 6 7 9 11 15 21 24 3 1 5 6 7 8 90 1 5 8 3

输出样例:
39162
说明 description
数据规模:
对于100%的数据,2<=n<=1000000,1<=a[i]<=1000。
#include<cstdio>
int main()
{
    int n,a[100000],i,j;
    long long sum=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&a[i]);
        sum+=a[i];
    }
    long long sum1=0,sum2=0,ans=0;
    for(i=1;i<=n;i++)
    {
        sum1+=a[i];
        sum2=sum-sum1;
        ans+=a[i]*sum2;
    }
    printf("%I64d",ans);
}

把O(N*N)的复杂度变为O(N)

【U1689】两两求和-洛谷

标签:

原文地址:http://www.cnblogs.com/liuxinyu/p/5076897.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!