您的位置:首页 > 其它

hdu2602 Bone Collector (01背包)

2015-09-18 11:50 405 查看
本文来源于:http://blog.csdn.net/svitter

题意:典型到不能再典型的01背包。给了我一遍AC的快感。

//============================================================================
// Name        : 2602.cpp
// Author      : vit
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <iostream>
#include <stdio.h>
#include <string.h>

using namespace std;
#define max(a, b) a > b ? a : b

struct Bone{
int val;
int vol;
};

Bone b[1010];
int dp[1010];

void ace(){
//work point
int t;
int i, j ,k;

//num
int n, v;

cin >> t;
while(t --){
memset(dp, 0, sizeof(dp));
scanf("%d%d", &n, &v);
for(i = 0; i < n; i++){
scanf("%d", &b[i].val);
}
for(i = 0; i < n; i++){
scanf("%d", &b[i].vol);
}

for(i = 0; i < n; i++)
for(j = v; j >= b[i].vol; j--){
dp[j] = max(dp[j], dp[j - b[i].vol] + b[i].val);
}

printf("%d\n", dp[v]);
}
}
int main() {
ace();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: