问题描述
递推公式
实例
源代码
#include <bits/stdc++.h>
using namespace std;
const int M = 5;
const int N = 6;
int maxProfit(int v[M][N],int f[M][N],int n,int money){
for(int i=1;i<=n;i++){
for(int j=0;j<=money;j++){
v[i][j]=0;
for(int k=0;k<=j;k++){
if(v[i][j] < f[i][j] + v[i-1][j-k])
v[i][j]=f[i][k]+v[i-1][j-k];
}
}
}
return v[n][money];
}
int main(){
int v[M][N]={0};
int f[M][N]={0,1,2,3,4,5,
0,11,12,13,14,15,
0,0,5,10,15,20,
0,2,10,30,32,40,
0,20,21,22,23,24};
cout<<maxProfit(v,f,4,5);
}
复杂度
复杂度为O(nm*2)