【传送门:BZOJ1606】
简要题意:
给出一个有容量的背包,和许多物品,物品有体积,请问最多能填充多大的容量
题解:
经典背包DP,裸题,不说话
参考代码:
#include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<algorithm> using namespace std; int n,m,a[5100],f[51000]; int main() { scanf("%d%d",&m,&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=n;i++) { for(int j=m;j>=a[i];j--) { f[j]=max(f[j],f[j-a[i]]+a[i]); } } printf("%d",f[m]); return 0; }