HDU 2602 Bone Collector(01背包模板题)
01背包模板题
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define maxn 1010 int v[maxn],w[maxn],f[maxn]; int main() { int T,n,vn; scanf("%d",&T); while(T--){ memset(f,0,sizeof(f)); scanf("%d%d",&n,&vn); for(int i=1;i<=n;i++) scanf("%d",&w[i]);//价值 for(int i=1;i<=n;i++) scanf("%d",&v[i]);//体积 for(int i=1;i<=n;i++){ for(int j=vn;j>=v[i];j--) f[j]=max(f[j],f[j-v[i]]+w[i]); } printf("%d\n",f[vn]); } }