1.背包问题
题目描述:
有一个冒险者,靠着好运气找到了一个大宝藏,宝藏里面珍宝无数,它们价值各异且重量不同。冒险者身边只带了一个旅行袋,容量有限,那么他到底拿那些宝物可以收益多少?
输入:
5,50,[5,3,20,35,28],[20,70,200,400,320]
输出:
520
说明:
参数一[5]表示总共有5个宝物,参数二[50]是背包的容量,参数三[5,3,20,35,28]是5个宝藏物各自的重量,参数四[20,70,200,400,320]是五个宝物各自的价值,输出[520]是在最优选择下能达到的最大价值
方法:0-1背包
背包问题框架:
int knapsack(int m,int n,vector<int>&)w,vector<int>&val)
{
vector<vector<int>>(m+1,vector<int>(n+1,0));
for(int i=1;i