榨取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. LA3983 捡垃圾的机器人

    Problem C - Robotruck Background This problem is about a robotic truck that distributes mail package ...

  2. ngix 创建新的网站

    1. 进入ngix 的目录的conf 目录 的 vhosts 2. 复制一份新的v2.edc.com.conf 3. server_name : v2.edc.com root :  /ali/... ...

  3. HDU 3366 Passage (概率DP)

    题意:T组测试数据,一个人困在了城堡中,有n个通道,m百万money ,每个通道能直接逃出去的概率为 P[i] ,遇到士兵的概率为 q[i], 遇到士兵得给1百万money,否则会被杀掉,还有 1-p ...

  4. Elasticsearch 5.6.5 安装head插件

    head安装包,下载地址:https://github.com/mobz/elasticsearch-head/archive/master.zip head 插件不能放在elasticsearch- ...

  5. win10登录不上sql2005

    因需求安装了一个SQL Server 2005. 登录的时候,用户Sa模式可以登录,Windows身份验证方式却无法登录. 经测试.解决方法如下: SQL Server Management Stud ...

  6. [LeetCode 题解]:Swap Nodes in Pairs

    前言   [LeetCode 题解]系列传送门:  http://www.cnblogs.com/double-win/category/573499.html   1.题目描述 Given a li ...

  7. IO--磁盘理论

    磁盘从圆心由内向外被分成多个磁道,而每个磁道会被划分成多个连续的扇区 扇区是磁盘寻址的最小单位,而实际上分配空间最小的单位是簇(cluster),因此导致文件大小和实际占用空间大小不一样 磁盘读写数据 ...

  8. 启动类加注解@MapperScan spring boot mybatis 启动错误

    Description: Field userDao in com.gcy.springsecuritydemo.service.user.UserService required a bean of ...

  9. Windowsform datagridview选中向父窗口传值

    Datagridview mouseclick事件 private void dataGridView1_MouseClick(object sender, MouseEventArgs e) { i ...

  10. redis详细说明

    # By default Redis does not run as a daemon. Use 'yes' if you need it.# Note that Redis will write a ...