题目大意:
给定一个序列,求出所有片段的和
算法思路:
其实就是找规律,也不知道为啥第一次写的时候完全找不出来,看答案都看不懂,第二次就一下看出来了,画个图看看就明白了
注意点:
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;
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。