动态规划—Problem R

原创 2016年05月30日 21:58:02

动态规划—Problem R
题意
题意:给出小猪钱罐的重量和装满钱后的重量,然后是几组数据,每组数据包括每种钱币的价值与重量。要求出重量最少能装满钱罐时的最大价值。
解题思路
完全背包问题。关于完全背包嘛,即在01背包的基础上,每种物品有无限件。也就是从每种物品的角度考虑,与它相关的策略已并非取或不取两种,而是有取0件、取1件、取2件……等很多种。如果仍然按照解01背包时的思路,令f[i][v]表示前i种物品恰放入一个容量为v的背包的最大权值。
状态转移方程为:
dp[j] = min(dp[j],dp[j-wei[i]]+val[i]).
最后,如果动规数组最后一格数据不等于初始值,即为答案。
感想
最近上课听的有些懵逼,呵呵,完全背包,还需再加深认识与理解。
AC代码

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;

int dp[1000005];

int main()
{
    int t;
    int wa,wb,w;
    int n,val[505],wei[505],i,j;
    cin>>t;
    while(t--)
    {
        cin>>wa>>wb;
        w = wb-wa;//必须减去小猪本身重量
        cin>>n;
        for(i = 0;i<n;i++)
            cin>>val[i]>>wei[i];
        for(i = 0;i<=w;i++)
        {
            dp[i] = 10000000;//因为要求小的,所以dp数组必须存大数
        }
        dp[0] = 0;
        for(i = 0;i<n;i++)
        {
            for(j = wei[i];j<=w;j++)
            {
                dp[j] = min(dp[j],dp[j-wei[i]]+val[i]);
            }
        }
        if(dp[w] == 10000000)
            printf("This is impossible.\n");
        else
            printf("The minimum amount of money in the piggy-bank is %d.\n",dp[w]);
    }

    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

【动态规划】【最短路径】Problem 3 Cyh和香穗子

话说,Cyh和香穗子是好朋友,一天他们在fzsz迷路了….Cyh在地点1,香穗子在地点n.由于Cyh是土生土长的fzsz人,所以Cyh准备去n地给香穗子带路. fzsz是个奇怪的地方,它由n地点组成...

OpenJudge - 2989 糖果 动态规划(DP) 重庆一中高2018级竞赛班第十一次测试 2016.9.24 Problem 2

【问题描述】 由于在维护世界和平的事务中做出巨大贡献,Dzx被赠予糖果公司2010年5月23日当天无限量糖果免费优惠券。在这一天,Dzx可以从糖果公司的N件产品中任意选择若干件带回家享用。糖果公司的...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

hdoj problem 1203 I NEED A OFFER!(动态规划&&背包问题(01背包问题))

I NEED A OFFER! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

BZOJ 2302 HAOI2011 Problem c 动态规划

题目大意:给定nn个人和nn个位置,要求生成一个序列aia_i,然后第1...n1...n个人依次走到第a1...na_{1...n}个位置,如果那个位置已经有人了就走到下一个位置,直到找到一个空位,...

【动态规划法】解析经典算法题Two eggs problem及其延伸问题

【动态规划法】解析经典算法题Two eggs problem及其延伸问题Two eggs problem可以说是互联网面试中老生常谈的算法题了,经常可以在各大互联网公司的笔试真题中看到它的各类变种(腾...

An problem about date(怎么就放在动态规划里面呢。。。)

An problem about date 时间限制:2000 ms | 内存限制:65535 KB 难度:2 描述 acm的iphxer经常忘记某天是星期几,但是他记那天的具体...

动态规划方法解旅行商问题(TSP Traveling Salesperson Problem)

本文依照具体例子说明如何用动态规划算法解tsp货郎商问题 网上很多相关文章介绍的时候都缺乏例子,以至于太抽象不够直观。本文用具体例子来介绍动态规划法解决tsp。tsp是为了在一个图中求得一个最优路径,...

最长公共子序列 (LCS,longest common subsequence problem) 动态规划

/* 函数:最长公共子序列 (LCS,longest common subsequence problem) 动态规划解决该问题. 算法见 算法导论 原书第三版 殷建平 P224一个给定的子序...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)