http://acm.hdu.edu.cn/showproblem.php?pid=2602
今天开始正式学习动态规划 让它一直恶心我
本题是最简单的01背包问题
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
using namespace std;
const int Max = 1010;
struct bone{
int w,v;
}node[Max];
int N,V,dp[Max];
int main(){
// freopen("in.txt", "r", stdin);
int cas;
scanf("%d",&cas);
while(cas--){
scanf("%d%d",&N,&V);
for(int i=0; i<N; i++)
scanf("%d",&node[i].v);
for(int i=0; i<N; i++)
scanf("%d",&node[i].w);
memset(dp, 0, sizeof(dp));
for(int i=0; i<N; i++)
for(int j=V; j>=node[i].w; j--)
dp[j] = max(dp[j - node[i].w] + node[i].v, dp[j]);
printf("%d\n",dp[V]);
}
return 0;
}