#include<cstdio> #include<cstdlib> #include<iostream> #include<algorithm> #include<vector> #include<cstring> using namespace std; #define MAX 1005 int v[MAX],w[MAX]; //int f[MAX][MAX]; int recond[MAX]; int N, V; int package(int N,int V) { int i,j; memset(recond, 0 ,sizeof(recond)); for(i=0; i<N; i++) scanf("%d",&v[i]); for(i=0; i<N; i++) scanf("%d",&w[i]); for(i=0; i<N; i++) for(j=V; j>=w[i]; j--) if(recond[j-w[i]]+v[i] > recond[j]) recond[j] = recond[j-w[i]]+v[i]; return recond[V]; } int main() { int ncase; scanf("%d",&ncase); while(ncase--) { scanf("%d %d",&N, &V); int value = package(N,V); printf("%d\n",value); } system("pause"); return 0; }
杭电 2602 01 背包
最新推荐文章于 2020-11-17 17:41:42 发布