Hdu 2602 Bone Collector

来源:互联网 发布:python写网络扫描器 编辑:程序博客网 时间:2024/04/19 02:40

背包九讲问题之一。

#include <iostream>#include <cstdlib>#include <cstdio>#include <cstring>#include <string>#include <algorithm>using namespace std;const int MAXN = 1010;int V[MAXN], W[MAXN];int d[MAXN][MAXN];int n, v;void init(){memset(d, 0, sizeof(d));}void dp(){init();for(int i = 1; i <= n; i++){for(int j = v; j >= 0; j--){if(j >= V[i]){d[i][j] = max(d[i-1][j], d[i-1][j-V[i]]+W[i]);}else d[i][j] = d[i-1][j];}}}void read_case(){scanf("%d%d", &n, &v);for(int i = 1; i <= n; i++) scanf("%d", &W[i]);for(int i = 1; i <= n; i++) scanf("%d", &V[i]);}void solve(){read_case();dp();printf("%d\n", d[n][v]);}int main(){int T;scanf("%d", &T);while(T--){solve();}return 0;}