投资问题
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、源码