Code:
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 1000000 + 4;
double f[maxn], g[maxn], h[maxn];
int main()
{
int n;
scanf("%d",&n);
for(int i = 1;i <= n; ++i)
{
double perc;
scanf("%lf",&perc);
h[i] = (h[i - 1] + 1) * perc;
g[i] = (g[i - 1] + 2 * h[i - 1] + 1) * perc;
f[i] = f[i - 1] + (3 * (h[i - 1] + g[i - 1]) + 1) * perc;
}
printf("%.1lf",f[n]);
return 0;
}
本文展示了一个使用C++实现的动态规划算法案例,通过计算一系列百分比累计效果,演示了如何利用数组存储中间结果,避免重复计算,提高算法效率。代码中详细展示了初始化变量、读取输入、核心计算逻辑及输出结果的过程。

被折叠的 条评论
为什么被折叠?



