1、问题描述:有m元钱,n项投资,f[i][x]代表将x元投入到第i个项目中的收益,求最大的收益。
2、输入:第一行为总钱数m和总项目数n;接下来为n行输入,每行m个,代表f[i][x]。
3、输出:最大收益
4、解析:动态规划问题一般分为两类:中间状态类和累积状态类。前者的参数是相同的,后者的参数不同,而且往往需要一个变量来进行遍历。这个问题以及最少货币数的问题都属于后者,最长公共子序列和最小路径和都属于前者。
#include<iostream>
#include<vector>
using namespace std;
int main() {
int m, n;//m元钱,n项投资
int i