超级胶水
区间dp:复杂度太高不行,dp一般数据量小于等于1000
贪心:要求顺序两个,非任意
推公式只有一个结果✓(考试直接推不现实,可以记住结论)
C++ 代码
#include<iostream>
#include<algorithm>
const int N = 1e5 + 10;
using namespace std;
int w[N],n;
typedef long long LL;
int main()
{
scanf("%d",&n);
LL sum = 0, ans=0;
for(int i=0;i<n;i++)
{
scanf("%d",&w[i]);
ans+=sum*w[i];//第一次的时候sum=0,不乘,到3*4才乘
sum+=w[i];//类似(3+4)*5,(1 5 2 6)*3,叠加乘以下一个数
}
cout<<ans<<endl;
}