1. 问题
2. 解析
这里可以采用动态规划的思想,我们建立表格a存储状态,横坐标为累计投资x,纵坐标为项目i。
有函数g(x)i表示当前格最大收益;
当i为1时我们有g(x)1=f(x)1
接下来我们动态规划,有g(x)i=max(y=0->x){g(y)i-1+f(x-y)i-1}
就可以逐步画出整个表格
3. 设计
伪函数:
三个二维数组a,b,c;
输入表格存入a;
用a的第一列初始化b的第一行;
公式循环调用逐行更新数组b,同时记录对应行列最大利润时的对于这个项目投资数值
4. 分析
时间复杂度T[n,m],遍历b需要nm,在每个点平均还需遍历cm次
即T[n,m]=O(nm^2)
5. 源码
https://github.com/Bcxx/task_code/tree/master/Invest