关于dp(背包)

时间:2022-01-05 10:03:19

有关背包,我这几天可是尽受其苦(不得不靠我聪颖的背诵代码的大脑来进行一波操作)

Step 1      01背包

01背包的解释:

01背包是在M件物品取出若干件放在空间为W的背包里,每件物品的体积为W1,W2至Wn,与之相对应的价值为P1,P2至Pn。01背包是背包问题中最简单的问题。01背包的约束条件是给定几种物品,每种物品有且只有一个,并且有权值和体积两个属性。在01背包问题中,因为每种物品只有一个,对于每个物品只需要考虑选与不选两种情况。如果不选择将其放入背包中,则不需要处理。如果选择将其放入背包中,由于不清楚之前放入的物品占据了多大的空间,需要枚举将这个物品放入背包后可能占据背包空间的所有情况。

也就是说,每个物品只有一个,只有选或不选的情况

我们只需要利用这一点性质就可以写出下面这套代码

关于01背包的主要代码:

for(int j=;j<=m;j++)
{
for(int i=n;i>=v[j];i--)
{
dp[i]=max(dp[i],dp[i-v[j]]+p[j]);
}
}

Step 2      完全背包

完全背包就是说各个物品有无数多的数量,怎么取都可以(与01背包有及其大的共同点qwq)

就是从低到高排序做。

for(int j=;j<=m;j++)
{
for(int i=v[j];i<=m;i++)
{
dp[i]=max(dp[i],dp[i-v[j]]+p[j]);
}
}

下几篇就是关于一些例题的题解。

关于dp(背包)的更多相关文章

  1. 【bzoj1688】&lbrack;USACO2005 Open&rsqb;Disease Manangement 疾病管理 状态压缩dp&plus;背包dp

    题目描述 Alas! A set of D (1 <= D <= 15) diseases (numbered 1..D) is running through the farm. Far ...

  2. URAL&lowbar;1018 Binary Apple Tree 树形DP&plus;背包

    这个题目给定一棵树,以及树的每个树枝的苹果数量,要求在保留K个树枝的情况下最多能保留多少个苹果 一看就觉得是个树形DP,然后想出 dp[i][j]来表示第i个节点保留j个树枝的最大苹果数,但是在树形过 ...

  3. hdu1561 The more&comma; The Better &lpar;树形dp&plus;背包&rpar;

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1561 思路:树形dp+01背包 //看注释可以懂 用vector建树更简单. 代码: #i ...

  4. HDU 5234 DP背包

    题意:给一个n*m的矩阵,每个点是一个蛋糕的的重量,然后小明只能向右,向下走,求在不超过K千克的情况下,小明最终能吃得最大重量的蛋糕. 思路:类似背包DP: 状态转移方程:dp[i][j][k]--- ...

  5. HDU4276 The Ghost Blows Light(树形DP&plus;背包)

    题目大概说一棵n个结点树,每个结点都有宝藏,走过每条边要花一定的时间,现在要在t时间内从结点1出发走到结点n,问能获得最多的宝藏是多少. 放了几天的题,今天拿出来集中精力去想,还是想出来了. 首先,树 ...

  6. HDU 4003 &lpar;树形DP&plus;背包&rpar;

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4003 题目大意:有K个机器人,走完树上的全部路径,每条路径有个消费.对于一个点,机器人可以出去再回来 ...

  7. ZOJ 3626&lpar;树形DP&plus;背包&plus;边cost&rpar;

    题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3626 题目大意:树中取点.每过一条边有一定cost,且最后要回 ...

  8. XCOJ 1102 &lpar;树形DP&plus;背包&rpar;

    题目链接: http://xcacm.hfut.edu.cn/oj/problem.php?id=1102 题目大意:树上取点.父亲出现了,其儿子包括孙子...都不能出现.给定预算,问最大值. 解题思 ...

  9. HDU 1561 &lpar;树形DP&plus;背包&rpar;

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1561 题目大意:从树根开始取点.最多取m个点,问最大价值. 解题思路: cost=1的树形背包. 有 ...

  10. POJ 1155 &lpar;树形DP&plus;背包&plus;优化&rpar;

    题目链接: http://poj.org/problem?id=1155 题目大意:电视台转播节目.对于每个根,其子结点可能是用户,也可能是中转站.但是用户肯定是叶子结点.传到中转站或是用户都要花钱, ...

随机推荐

  1. linux一些常用配置

    1.vi编辑退出不清屏 .bashrc最后加: 2.

  2. 远程出发jenkins jobs

    wget -O - -q "http://jenkins_server/job/ttt/buildWithParameters?TEST1=Value" wget -O - -q ...

  3. stl-基本知识

    摘要:本文列出几个基本的STL map和STL set的问题,通过解答这些问题讲解了STL关联容器内部的数据结构,最后提出了关于UNIX/LINUX自带平衡二叉树库函数和map, set选择问题,并分 ...

  4. &lpar;转&rpar;Sql Server 对锁的初步认识

    一:到底都有哪些锁 学习锁之前,必须要知道锁大概有几种???通常情况下作为码农我们只需知道如下几个锁即可... 1.S(Share)锁 为了方便理解,我们可以直接这么认为,当在select的时候在表, ...

  5. 2015 AlBaath Collegiate Programming Contest B

    Description Yaaaay, Haven't you heard the news? Bakaloria results are out! And Reem had very good gr ...

  6. 解决VS2013调试ASP&period;NET中无法调试的问题:当前不会命中断点。在 XXXX&period;dll 中找到了 XXX&period;cs 的副本,但是当前源代码与 XXXX&period;dll 中内置的版本不同。

    解决思路: 一定是在某个文件夹存在了副本,结果果然不出所料. 当前日期是2016年3月10日,But C:\Windows\Microsoft.NET\Framework\v4.0.30319\Tem ...

  7. &lbrack;原创&rsqb;Devexpress XtraReports 系列 5 创建交叉报表

    昨天我们已经介绍了如何创建多栏报表,详见:[原创]Devexpress XtraReports 系列 4 创建多栏报表 今天我们继续我们的XtraReports系列.Demo和数据库文件最后会附上. ...

  8. jar文件运行打断点

    eclipse中jar包打断点 1. 下载工具 链接:http://pan.baidu.com/s/1jHSXMSm 密码:3aww 或者: 1下载jad.exe,地址: http://www.kpd ...

  9. 【程序员小助手】Emacs,最强编辑器,没有之一

    内容简介 1.Emacs简介 2.Emacs三个平台的安装与配置 3.自动补全插件 4.小编的Emacs配置文件 5.常用快捷方式 6.和版本控制系统的配合(以SVN为例) [程序员小助手]系列 在这 ...

  10. iOS开发之Xcode常用调试技巧总结

    转载自:iOS开发之Xcode常用调试技巧总结 最近在面试,面试过程中问到了一些Xcode常用的调试技巧问题.平常开发过程中用的还挺顺手的,但你要突然让我说,确实一脸懵逼.Debug的技巧很多,比如最 ...