小偷偷东西

题目描述:
小偷来到了一个神秘的王宫,突然眼前一亮,发现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;
} 


全部评论

相关推荐

03-26 15:18
已编辑
华北水利水电大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务