哈理工OJ 1983 Math(前缀和)
2017-03-08 21:20
465 查看
题目链接:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1983
【中文题意】让你求出所有a[i]*a[j]的和是多少其中i<=j
【思路分析】首先啊,你会发现各项的平方肯定在其中,我们先加上,然后呢,我们用qianzhui[i]代表从第一个数加到第i个数的和,我们会发现第i个数乘以后面所有的数肯定在结果中,这两种情况的结果加起来就是所求的结果了。
【AC代码】
【中文题意】让你求出所有a[i]*a[j]的和是多少其中i<=j
【思路分析】首先啊,你会发现各项的平方肯定在其中,我们先加上,然后呢,我们用qianzhui[i]代表从第一个数加到第i个数的和,我们会发现第i个数乘以后面所有的数肯定在结果中,这两种情况的结果加起来就是所求的结果了。
【AC代码】
#include<stdio.h> #include<map> #include<string.h> #include<algorithm> #include<hash_map> #include<iostream> using namespace std; #define LL long long int a[100005]; LL qianzhui[100005]; int main() { int n; while(~scanf("%d",&n)) { LL sum=0,x=0; qianzhui[0]=0; //memset(book,0,sizeof(book)); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); sum+=a[i]*a[i]; qianzhui[i]=qianzhui[i-1]+a[i]; x+=a[i]; } LL sum2=0; for(int i=1;i<=n;i++) { sum2+=(x-qianzhui[i])*a[i]; } printf("%lld\n",sum+sum2); } return 0; }
相关文章推荐
- 哈理工OJ 2256 南西群岛海域·冲之岛近海(线段树区间更新+前缀和优化)
- hrbust/哈理工oj 1877 区间【水题】
- 哈理工OJ 1597 序列问题II(水DP)
- 哈理工 oj 2122 旅行(map + 最短路dij算法)
- 哈理工OJ 1124 Final Destination(简单递推)
- 哈理工OJ-2331-Great Atm【二进制思维】
- 哈理工OJ 1710 a + b = c(尺取法)
- 哈理工 oj 1375-The Active Leyni
- 哈理工OJ 1425 阶乘问题(水题)
- 哈理工OJ 1997 又是一个神奇的布尔矩阵(判断)
- Light OJ Basic Math
- 哈理工OJ 1251 【带坑的快速幂】【好题】
- hrbust 哈理工OJ 2133 最快通过【dijkstra过】
- hrbust 哈理工oj 1921 三原色(改进版)【集合相关问题】
- 哈理工OJ 2147 经理办公室(深搜题目)
- hrbust/哈理工oj 2060 截取方案数【KMP匹配】
- hrbust 1578 哈理工oj 1578 Prince and little Princess-2【双向队列】
- 哈理工OJ 1936 PROBLEM-4SS(二分法解题)
- hrbust/哈理工oj 1126 Final Destination II【矩阵快速幂+递推】
- 哈理工OJ 1176 小陈老师、雪人(排序+优先队列模拟)