问题
设 m 元钱,n 项投资,函数f i(x)表示将 x 元投入第 i 项项目所产生的效益,i=1,2,…,n.问:如何分配这 m 元钱,使得投资的总效益最高?
解析
设计
递推方程:Fk(x) = max{fk(xk)+Fk-1(x-xk)},k=2,3,…,n
边界条件:Fk(x)=f1(x),Fk(0)=0,k=1,2,…,n
xi(x)=k:新加第i项时,总共分配x元时,第i项分配了k元(xk)
for k=1,2,3,…,n //第k个项目
for x=0,1,2,3,…,m // k个项目共分配x万元
for xk=0,1,2,3,…,x //第k个项目分配xk
分析
复杂度W(n,m)=O(nm2)
源码
https://github.com/yaoshuangice/yaoshuang