您的位置:首页 > 其它

1104. Sum of Number Segments (20)解题报告

2016-12-30 17:32 411 查看
经分析可得如下递推式:    

S_{i} = S_{i-1} - (i - 1) + n - (i  - 1)。S_{i}代表第i个数字在所有连续序列中出现的次数。n代表数字个数。

#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <cstdlib>

int main(void)
{
int n, i;
double sum = 0.0, *arr;

scanf("%d", &n);
arr = new double[n + 1];
for (i = 1; i <= n; i++) {
scanf("%lf", arr + i);
}

double si = 0;
for (i = 1; i <= n; i++) {
si = si - (i - 1) + n - (i - 1);
sum += arr[i] * si;
}
printf("%.2lf", sum);

delete[] arr;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: