投资问题

1、问题

  设 m 万元钱,n 项投资,函数f(x)表示将 x 万元投入第 i 项项目所产生的效益,i=1,2,…,n.问:如何分配这 m 元钱,使得投资的总效益最高?
2、解析
3、设计
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int N = 1e3+10;
 4 int n,m;
 5 int f[N][N],F[N][N];
 6 int main() {
 7     cin>>n>>m;
 8     for (int j=1;j<=m;j++) 
 9         for (int i=1;i<=n;i++) 
10             cin>>f[i][j];
11     for (int i=1;i<=n;i++) { //枚举投资个数 
12         for (int j=0;j<=m;j++) {//枚举前i个投资的钱 
13             for (int k=0;k<=j;k++) {//枚举第i个投资的钱 
14                 F[i][j] = max(F[i][j],F[i-1][j-k] + f[i][k]);
15             }
16         }
17     }
18     printf("max reward is %d\n",F[n][m]);
19     return 0;
20 }
4、分析
5、源码
posted @ 2021-05-03 20:54  programmer_w  阅读(82)  评论(0编辑  收藏  举报