01背包
有N种物品和一个容量为V的背包。每件物品只能使用一次
第i件物品的体积是v[i],价值是w[i]
求解将哪些物品放入背包,可使物品的总体积不超过背包容量,且总价值最大。输出最大价值
例1:
关键:
定义Fij为考虑前i件物品,空间为j时的总价值
二维时:依此枚举考虑前n件物品(从空间为1到最大空间)
一维时:依此考虑第一件物品到最后一件物品(空间从最大到此物品的空间)
#include <iostream> using namespace std; int f[10000][10000],v[10000],w[10000]; int main(){ int n,m; cin>>n>>m; for(int i=1;i<=n;i++) { cin>>v[i]>>w[i]; } for(int i=1;i<=n;i++) for(int j=