Title Link: http://acm.hdu.edu.cn/showproblem.php?pid=2602
Idea: a typical 01 backpack
1#include <stdlib.h>2#include <time.h>3#include <cstdio>4#include <cstring>5#include <cmath>6#include <cstdlib>7#include <ctime>8#include <iostream>9#include <algorithm>Ten#include <vector> One#include <queue> A#include <map> -#include <Set> -#include <string> the using namespacestd; - - #defineN 10005 - + intVal[n],vol[n],dp[n]; - + intMain () A { at intnum; - intN,space; -scanf"%d",&num); - while(num--) - { -scanf"%d%d",&n,&space); in for(intI=1; i<=n;i++) -scanf"%d",&val[i]); to for(intj=1; j<=n;j++) +scanf"%d",&vol[j]); - theMemset (DP,0,sizeof(DP)); * for(intI=1; i<=n;i++) $ {Panax Notoginseng for(intj=space;j-vol[i]>=0; j--) - { theDp[j]=max (dp[j],dp[j-vol[i]]+val[i]); + } A the } +printf"%d\n", Dp[space]); - } $ return 0; $}
HUD 2602 Bone Collector