题目粗心:
给定一个序列,求出所有片段的和
算法思路:
其实就是找法则,也不晓得为啥第一次写的时候齐全找不进去,看答案都看不懂,第二次就一下看进去了,画个图看看就明确了
留神点:
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;}