先来看看题目的空间和时间限制:
| 时间限制 : - MS 空间限制 : - KB |
| 评测说明 : 1s 256MB |

样例输入
5
2
1
4
3
5
样例输出
168
先 浅浅地 科普 (拓展)一下:
前缀和:sum[i]=sum[i-1]+a[i];
前缀平方和:sum[i]=sum[i-1]+a[i]*a[i];
后缀和:sum[i]=sum[i+1]+a[i];
(这三个东西有了就简单了,不附AC代码)
注意事项:
这个要开long long哦!数那么大!
为什么呢?
因为它又在累加,又在累乘。
部分代码:
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
sum[i]=sum[i-1]+a[i];
svc[i]+=svc[i-1]+a[i]*a[i];
}
for(int i=1;i<=n;i++){
long long rp=svc[i]*(sum[n]-sum[i]);
ans=max(ans,rp);
}
printf("%lld",ans);
行了,就这么多,其余的自己写吧……
文章介绍了在解决编程问题时,前缀和、前缀平方和以及后缀和的概念,并通过举例说明它们在计算过程中的作用,特别是强调在处理大数累加和累乘时需要注意的数据类型,如使用longlong。代码示例展示了如何计算这些和并用于求解最大值问题。
344

被折叠的 条评论
为什么被折叠?



