题目描述等
思路
观察公式S,便可得,实际上S是每个数乘以它前面数的和的和,因此可以使用前缀和将算法的时间复杂度优化到O(n),空间复杂度优化到O(1)。
代码
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = 2e5 + 5;
typedef long long ll;
int n;
ll sum = 0, x, a;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n;
for(int i=1;i<=n;i++){
cin>>a;
sum += a * x, x += a;
}
cout<<sum;
return 0;
}