1.问题
m元钱,n 项投资,函数fi(x)表示将 x 元投入第 i 项项目所产生的效益,i=1,2,…,n.问:如何分配这 m 元钱,使得投资的总效益最高。
2.解析
3.设计
void Invest(int f[][MAX],int n,int m) {
int F[MAX][MAX] = { 0 }, A[MAX][MAX] = { 0 }, max;
for (int k = 1; k <= n; k++)
{
for (int x = 1; x <= m; x++) {
//求得最大效益
max = 0;
for (int xk = 0; xk <= x; xk++)
{
if (F[k - 1][x - xk] + f[k][xk] > max)
{
max = F[k - 1][x - xk] + f[k][xk];
A[k][x] = xk;
}
}
F[k][x] = max;
}
}
}
4.分析