实验报告
课程名称 《算法分析与设计》 实验日期 2021 年 4 月 25 日 至 2021 年 4 月 25 日
学生姓名 王海轩 所在班级 计算机194 学号 2019212212194
实验名称 投资问题
实验地点 勤13-208 同组人员
1.问题
设m万元钱,n项投资,函数f_i(x)表示将x万元投入到第i项项目所产生的效益,i=1,2, … ,n。问:如何分配这m万元,使得投资的总收益最高。
2.解析
设dp[i][j]为在前i个项目中投入j元能获得的最大收益。当i = 1时,我们从0推到1是显然正确的。那么当前一个项目在花m_1万元的最优解确定下来之后,我们能够枚举当前项目花m_2万元,从而在有向图上覆盖到所有合法的点,最终处理出最优解。
3.设计
for 枚举项目
for 枚举花费
for 枚举第i个项目花费q
dp[i][j] = max(dp[i][j], dp[i - 1][j - q] + w[i][q]);
4.分析
三层循环,时间复杂度O(nm^2)。
5.源码
https://github.com/whx116/lab7.git