美文网首页
上交OJ-1013. 无限背包

上交OJ-1013. 无限背包

作者: code猪 | 来源:发表于2018-05-18 16:04 被阅读14次

1013. 无限背包


Description

你现在有一个体积为V的大袋子,有N种物品,假设每种物品的数量有无限多个,而且第i种物品的体积是c[i],价值是w[i],请选择一些物品放入袋中,使袋中物品的价值总和最大。

注意每种物品的数量是无限多的;对于放入袋中的同种物品数量没有限制。

Input Format

第一行包含两个正整数V和N,分别代表袋子的体积和物品的种类数。

以下N行分别由2个正整数组成,代表每种物品的体积和价值。

V≤10000,N≤1000。

保证操作可在C++ int范围内完成。

Output Format

输出一个整数,表示最大的价值总和

Sample Input

5 3
2 3
3 2
4 1

Sample Output

6

分析

这是一个典型的动态规划问题,其关键也是记录中间结果。

#include <iostream>
#include <algorithm>
#include <cstring>

using namespace std;

int main()
{
    int V,N;
    int space[1001],value[1001];
    int tmp_V[10001];
    int i,j;
    
    memset(tmp_V, 0, sizeof(tmp_V));
    
    cin>>V>>N;
    for(i=1; i<=N; i++)
        cin>>space[i]>>value[i];
    
    for(i=1; i<=V; i++) {
        for(j=1; j<=N; j++) {
            if(i >= space[j])
                tmp_V[i]=max(tmp_V[i], tmp_V[i-space[j]]+value[j]);
        }
    }
    
    cout<<tmp_V[V]<<endl;
    
    return 0;
}

相关文章

  • 上交OJ-1013. 无限背包

    1013. 无限背包 Description 你现在有一个体积为V的大袋子,有N种物品,假设每种物品的数量有无限多...

  • 动态规划中阶

    Question 1 Unbounded Knapsack! (无限背包) Given a set of 'n' ...

  • 背包问题2(完全背包)

    01背包是指每件物品有且只有一件,而完全背包则是每件物品件数无限,求装入背包所对应的最值。完全背包也有公式,在01...

  • 背包九讲——Java详解

    01背包问题 每个物品只有选和不选两种状态 完全背包问题 每个物品可以无限次选 多重背包问题 I 物品个数有数量限...

  • leetcode- 零钱兑换 II(背包问题-总结-复盘)

    这是完全背包问题,其中背包的容量就是 amount, 物品就是硬币,其中物品的数量是无限个的,而物品的重量,这里就...

  • 动态规划 python

    最长公共子串 0-1背包 完全背包(物品数量为无限个) 322.coins change有多少种换法 最少需要几张...

  • 01背包&无限背包问题&小鲁班的成长之路

    利用有限的包容量,拿到最大价值的东西,在(每样只能拿一个,或者可以重复拿)的两种情况下,用动态规划的方法,求解,如...

  • 完全背包--二维数组

    完全背包问题是在01背包问题进行些改变,其大意为:有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物...

  • 背包九讲学习笔记与例题(二)

    2.完全背包问题 2.1 题目 有 种物品和一个容量为 的背包,每种物品都有无限件可用。放入第种物品 的费用是 ...

  • 背包系列问题——换零钱2

    参考资料:1. 动态规划之背包问题系列2. 换零钱2 无限硬币》》完全背包问题只不过把问题从最大收益换做种类,ma...

网友评论

      本文标题:上交OJ-1013. 无限背包

      本文链接:https://www.haomeiwen.com/subject/mqigdftx.html