榨取kkksc03 多维dp

题面:洛谷 P1855 榨取kkksc03

一道简单的动态规划,背包再加一维费用,首先可以易得三维动态规划转移方程

\[dp[i][j][w]=\left\{
\begin{array}{}
max(dp[i-1][j][w], dp[i-1][j-a[i].m][w-a[i].t]+1) \qquad \\
dp[i-1][j][w]
\end{array}
\right.
\]

即当前状态(决策到第\(i\)件物品,已花费\(j\)金钱\(w\)时间)可以由不选这个物品的状态与选了这个物品(如果可以转移)转移而来,其中价值就是已选了多少个物品

而后,类比背包,我们又可以去掉第一维,将三维压到二维。当然,也同背包,\(j\)和\(w\)的遍历应为倒序。

核心代码:

for(int i=1;i<=n;i++)
for(int j=m;j>=0;j--)
for(int w=t;w>=0;w--)
if(j-a[i].m>=0&&w-a[i].t>=0)//判断状态是否合法
f[j][w]=MAX(f[j][w], f[j-a[i].m][w-a[i].t]+1);
else
f[j][w]=f[j][w];

然而需要注意的是:

  • 状态转移时要注意其合法性
  • 初始化要均初始化为0。因为这样才能使最终f[m][t]的值表示不一定填满[m][n]的背包所获得的最大价值(因为最优解可能没有填满背包,即未用尽金钱与时间);反之,若均初始化为-INF则最终f[m][t]的值表示一定填满[m][n]的背包所获得的最大价值。这一部分可以参考动态规划算法的初始化和转移

榨取kkksc03 多维dp的更多相关文章

  1. P1855 榨取kkksc03 二维费用背包

    Kkksc03的时间和金钱是有限的,所以他很难满足所有同学的愿望.所以他想知道在自己的能力范围内,最多可以完成多少同学的愿望? 输入输出格式 输入格式: 第一行,n M T,表示一共有n(n<= ...

  2. 【洛谷】【动态规划/二维背包】P1855 榨取kkksc03

    [题目描述:] ... (宣传luogu2的内容被自动省略) 洛谷的运营组决定,如果...,那么他可以浪费掉kkksc03的一些时间的同时消耗掉kkksc03的一些金钱以满足自己的一个愿望. Kkks ...

  3. 二维背包---P1855 榨取kkksc03

    P1855 榨取kkksc03 题解 二维背包板子题 f[ i ][ j ] 前 n 个物品,花费金钱不超过 i ,花费时间不超过 j 的最大价值 如果每个物品只能选一次,那么就相当于在01背包上多加 ...

  4. 洛谷 P1855 榨取kkksc03 题解

    P1855 榨取kkksc03 题目描述 洛谷2的团队功能是其他任何oj和工具难以达到的.借助洛谷强大的服务器资源,任何学校都可以在洛谷上零成本的搭建oj并高效率的完成训练计划. 为什么说是搭建oj呢 ...

  5. 悦动达人 (多维dp)

    悦动达人 Description 一个游戏,在屏幕上有5个格子形成一行,每一秒都会有一个格子闪烁,格子闪烁时你需要保证至少有一只手指在格子上面, 现在我们已经知道第i秒时,第xi个格子会闪烁,我们假设 ...

  6. POJ - 1170 Shopping Offers (五维DP)

    题目大意:有一个人要买b件商品,给出每件商品的编号,价格和数量,恰逢商店打折.有s种打折方式.问怎么才干使买的价格达到最低 解题思路:最多仅仅有五种商品.且每件商品最多仅仅有5个,所以能够用5维dp来 ...

  7. luogu 4401 矿工配餐 多维dp

    五维dp,记忆化搜索会MLE超内存,所以用滚动数组,十分经典 五维dp #include <bits/stdc++.h> using namespace std; ; ][][][],la ...

  8. 洛谷p1732 活蹦乱跳的香穗子 二维DP

    今天不BB了,直接帖原题吧  地址>>https://www.luogu.org/problem/show?pid=1732<< 题目描述 香穗子在田野上调蘑菇!她跳啊跳,发现 ...

  9. 洛谷 P1006 传纸条 多维DP

    传纸条详解: 蒟蒻最近接到了练习DP的通知,于是跑来试炼场看看:发现有点难(毕竟是蒟蒻吗)便去翻了翻题解,可怎么都看不懂.为什么呢?蒟蒻发现题解里都非常详细的讲了转移方程,讲了降维优化,但这题新颖之处 ...

随机推荐

  1. Django中的元类-乾颐堂

    看Django(1.6)的Form相关源代码时比较迷惑,于是节选了django.forms.forms.py中的几个代码片段来分析Django中是怎么使用元类的: 1 2 3 4 5 6 7 8 9 ...

  2. cannot find -lf2c

    sudo apt-get install libf2c2 auso apt-get install libf2c2-dev

  3. GC Roots的理解以及如何判断一个对象为“垃圾”

    http://blog.csdn.net/Great_Smile/article/details/49935307 这篇博客中讲解了哪些可以作为GC Roots以及如何判断一个对象为垃圾

  4. 微信第三方登录测试时报Scope参数错误或没有Scope权限解决方法

    一 报错信息: 二 出现原因分析: 出现这种错误网上查出现有的原因是: 1. 订阅号没有相关的权限 2. 账号没有认证,没有相关的权限 那么这里遇到问题两种都不是.开发账号是 服务号,而且也是认证号. ...

  5. Session分布式共享 = Session + Redis + Nginx(转)

    出处:http://www.cnblogs.com/newP/p/6518918.html 一.Session 1.Session 介绍 我相信,搞Web开发的对Session一定再熟悉不过了,所以我 ...

  6. (2)WePHP 控制器与使用模板

    <?php class C_index extends Action { public function __initialize() { echo"自动执行"; } pub ...

  7. RenderPage()加载局部页和传递数据

    System.Web.WebPages.WebPageBase类的方法public override HelperResult RenderPage(string path, params objec ...

  8. Linux ps 进程状态码

    D            不可中断睡眠(通常进程在进行I/O) R            运行中或者可运行状态(在运行队列中) S            可中断睡眠(等待event,进程idle中) ...

  9. iTerm2 + Oh My Zsh 打造舒适终端体验

    iTerm2 + Oh My Zsh 打造舒适终端体验 写在前面 最终效果图: 因为powerline以及homebrew均需要安装command line tool,网络条件优越的同学在执行本文下面 ...

  10. Java设置jre通过java new Date()得到的时间的时区

    1.前提 由于公司有印尼的项目,该项目仅对印尼当地开放使用(公司在国内,用的是阿里云的ECS,但是阿里云在印尼没有服务器,所以就买了新加坡的服务器),印尼当地人用的是东七区的时间,所以比国内东八区的时 ...