投资问题
1. 问题
2. 解析
3. 设计
for (k = 2; k <= m; ++k) {// 从第二个阶段到最后一个阶段
for (i = 0; i <= n; ++i) { // 遍历所有的投资金额
t[i] = f[i];// 第k阶段初始最优解 认为是把所有金额投给第k个项目
cin >> f[i];// 输入第k个项目的投资收益函数
a[k][i] = 0;// 初始化时认为 有i万元资金时 给第k个项目不投资 收益最大
}
for (i = 0; i <= n; ++i) {
for (j = 0; j <= i; ++j) {// 遍历给定金额i下的分配情况
if (f[j] + g[i - j] > t[i]) {// 如果此分配方案收益更大 则更新分配方案和最大收益
t[i] = f[j] + g[i - j];
a[k][i] = j;
}
}
}
for (i = 0; i <= n; ++i)// 更新分配方案
g[i] = t[i];
}
4. 分析
5. 源码
https://github.com/Marshmello11/Algorithm/tree/master/Experiment_7