小偷偷东西
题目描述:
小偷来到了一个神秘的王宫,突然眼前一亮,发现5个宝贝,每个宝贝的价值都不一样,且重量也不一样,但是小偷的背包携带重量有限,所以他不得不在宝贝中做出选择,才能使偷到的财富最大,请你帮助小偷计算一下。
输入描述:
宝贝价值:6,3,5,4,6
宝贝重量:2,2,6,5,4
小偷背包容量:10
输出描述:
偷到宝贝的总价值:15
示例1
输入
6,3,5,4,6
2,2,6,5,4
10
输出
15
// niuke.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <stdio.h> int maxVal(int a, int b); int main() { int val[5] = {6, 3, 5, 4, 6}; int size[5] = {2, 2, 6, 5, 4}; int result[11] = {0}; int maxsize = 10; for(int i = 0; i < 5; ++i) { for(int j = maxsize; j >= size[i]; --j) { result[j] = maxVal(result[j], result[j - size[i]] + val[i]); } } printf("%d",result[maxsize]); getchar(); getchar(); return 0; } int maxVal(int a, int b) { return a >= b ? a : b; }