1:问题
设m元钱,n项投资,函数fi(x)表示将x元投入第i项项目所产生的效益,i=1,2,…,n.问:如何分配这m元钱,使得投资的总效益最高?
假设分配给第i个项目xi元钱,即求MAX(Σ1->i fi(xi));
2:解析
Fk(x)表示x万元投给前k个项目的最大收益;
Fk(x) = MAX{(fk(xk) + Fk-1(x - xk)},k=2,3,…,n.
F1(x)=f1(x)
即求MAX(Fk(x)) k<=n
3:设计
for(k from 1 to n) 投资k个项目
for(x from 1 to m) 共分配x万元
for(xk from 1 to x) 第k个项目分配xk万元
4:分析
复杂度:O(nm^2)
5:源码
源码