【蓝桥杯】2080求和

在这里插入图片描述

思路

直接算想都不想一定超时,从公式入手,找规律化简
S = a 1 ( a 2 + a 3 + . . . + a n ) + a 2 ( a 3 + . . . + a n ) + . . . + a n − 1 a n S = a_1(a_2+a_3+...+a_n) + a_2(a3+...+a_n)+...+a_{n-1}a_n S=a1(a2+a3+...+an)+a2(a3+...+an)+...+an1an
多次用到了求和,前缀和,完美。

n = int(input())
a = [0] + list(map(int,input().split()))

pre = [0 for i in range(n+1)]
for i in range(1,n+1):
  pre[i] = pre[i-1] + a[i]

ans  = 0
for i in range(1,n-1 + 1):
  ans += a[i]*(pre[-1] - pre[i])

print(ans)

总结

重点是不要被公式吓到,也别直接暴力,如果暴力那这题一点算法都没有,总得考你点什么吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值