题目粗心:

给定一个序列,求出所有片段的和

算法思路:

其实就是找法则,也不晓得为啥第一次写的时候齐全找不进去,看答案都看不懂,第二次就一下看进去了,画个图看看就明确了

留神点:

1、应用双层循环测试点2和3会超时。
2、测试点2数据太大,应用double会出错,得换成long double,2020年5月前不会出错,应该是新增加的数据点

提交后果:

AC代码:

#include <cstdio>using namespace std;int main(){    int N;    scanf("%d",&N);    long double a[N];    for (int i = 0; i < N; ++i) {        scanf("%Lf",&a[i]);    }    long double ans = 0;    for (int i = 0; i < N; ++i) {        //迭代N次        ans += a[i]*(N-i)*(i+1);//a[i]在第i+1轮迭代中呈现了(N-i)次,总的迭代轮次为i+1    }    printf("%.2Lf",ans);    return 0;}