dp模板题(y总小迷弟)

news2025/6/22 5:12:22

这个是总结y总的闫式dp分析方法来写的下面的题目主要核心就是:

  1. dp的含义:集合代表说明 
  2. 如何根据最后一个子问题进行划分
  3. 根据划分的范文推出状态式

四大经典dp问题

01背包 

01背包问题可描述为如下问题:
有一个容量为V的背包,还有n个物体。现在忽略物体实际几何形状,我们认为只要背包的剩余容量大于等于物体体积,那就可以装进背包里。每个物体都有两个属性,即体积w和价值v。
问:如何向背包装物体才能使背包中物体的总价值最大?

 dp[i][j] 解释:从前i个物体中选择体积不超过j的物品的方案

属性: max

状态计算:

说明:右半边的集合的表达式是在dp[i-1][j] 的基础上再加一个i物品 

要使得最后的结果最大话,保证两边集合的值每次取最大值,最后的结果取一下两者的最大值即可,可以得出状态表达式为: 

#include<iostream>
#include<cmath>
using namespace std;

const int N = 1010;
int v[N] , w[N];
int dp[N][N];

int main()
{
    int n, m;
    cin >> n >> m;
    for(int i = 1 ; i <= n ; i++) cin >> v[i] >> w[i];
    
    for(int i = 1 ; i <= n ; i++ )
    {
        for(int j = 0 ; j <= m ; j++)
        {
        dp[i][j] = dp[i-1][j]; // 左半边集合
        if(j >= v[i]) dp[i][j] = max(dp[i-1][j],dp[i-1][j-v[i]]+w[i]);
        }
    }
    
    cout << dp[n][m];
    return 0;
}

完全背包问题

有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的体积是v[i],价值是val[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。

 dp[i][j] 解释:从前i个物体中选择体积不超过j的物品的方案

属性: max

状态计算:

这里跟01背包不同的就是。物品的数量没有限制,所以在取i物品的那个集合可以有k种方案 但是就会存在一个问题:

dp[i][j] = max(d[i-1][j],dp[i-1][j-kv[i]]+kw[i].......); 

 所以我们可以进行一次化简,令 j = j - v可以推出

(dp[i-1][j-kv[i]]+kw[i].......)  ==  dp[i][j-v] + w 

所以我们可以得出最后的表达式

dp[i][j] = max(dp[i-1][j],dp[i][j-v[i]] + w[i]);

 完整代码如下

#include<iostream>
#include<cmath>

using namespace std;

const int N = 1010;

int n, m;
int dp[N][N];
int v[N] , w[N];

int main()
{
    cin >> n >> m;
    for(int i = 1 ; i <= n ; i++) cin >> v[i] >> w[i];
    for(int i = 1 ; i <= n ; i++)
    {
        for(int j = 0 ;j <= m ; j++)
        {
            dp[i][j] = dp[i-1][j]; // 不取i的那部分
            if(j >= v[i]) dp[i][j] = max(dp[i-1][j],dp[i][j-v[i]] + w[i]);
        }
    }
    
    cout << dp[n][m] << endl;
    return 0;
}

区间dp

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1086529.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Crypto/加密货币 应用

1. 应用程序功能模块 1) 实时加密货币数据 2) 保存当前用户的货币数据 3&#xff09;搜索、筛选、排序和重新加载数据 4&#xff09;自定义颜色主题和加载动画 2. 技术点 1&#xff09;MVVM 体系结构 2&#xff09;Core Data&#xff08;保存当前用户的投资组合&#xff09; 3…

Web后端开发登录校验及JWT令牌,过滤器,拦截器详解

如果用户名正确则成功进入 登录功能 代码 Controller Service Mapper 结果 若登录成功结果如下: 如果登录失败,结果如下 登录校验 为什么需要登录校验 有时再未登录情况下, 我们也可以直接访问部门管理, 员工管理等功能 因此我们需要一个登录校验操作, 只有确认用户登录…

易点云CFO向征:CFO不能只讲故事,价值创造才是核心

作者 | 曾响铃 文 | 响铃说 在今年6月初&#xff0c;也是易点云上市6天后&#xff0c;《巴伦周刊》正式启动评价“2023港美上市中国企业CFO精英100”的活动。 时间来到9月&#xff0c;评价揭秘&#xff0c;易点云CFO向征成功入选&#xff0c;被评为“年度最具成长潜力CFO”…

入手DDR5内存最佳时机到了,价格大跳水香过DDR4

当时 DDR5 内存刚出来那会儿大家怎么说的来着&#xff0c;售价离谱&#xff0c;提升微弱&#xff0c;鬼都不买… 不过嘛&#xff0c;随着 13 代酷睿以及锐龙 7000 系 CPU 上市&#xff0c;DDR5 彻底真香起来了。 先不说花重金升级 13 代酷睿平台&#xff0c;还用 DDR4 会不会有…

【开源项目】一款轻量级、基于Java语言开发的低代码开发框架,开箱即用!

在当今数字化时代&#xff0c;企业对于灵活、高效和安全的软件开发需求日益旺盛。为了满足这些需求&#xff0c;许多组织转向开源技术&#xff0c;以寻求更具成本效益和创新性的解决方案。JVS基础框架正是在这一背景下应运而生&#xff0c;凭借其私有化部署和完全开源的特性&am…

LeetCode 2578. 最小和分割【贪心,排序+奇偶分组】1350

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

Redis 新手必读。这篇文章是学 Redis 的捷径。

Redis 简介Redis 优势Redis 数据类型基本命令发布订阅订阅者的客户端显示如下事务持久化复制哨兵分片 Redis 简介 Redis 是完全开源免费的&#xff0c;遵守 BSD 协议&#xff0c;是一个高性能的 key - value 数据库 Redis 与 其他 key - value 缓存产品有以下三个特点&#…

经典面试题第九更---Promise养猪场

前言&#xff1a; &#x1f921; 作者简介&#xff1a;我是Morning&#xff0c;计算机的打工人&#xff0c;想要翻身做主人 &#x1f648; &#x1f648; &#x1f648; &#x1f3e0; 个人主页&#xff1a; Morning的主页 &#x1f4d5;系列专栏&#xff1a; 前端…

Magic Bullet Suite2024.0.1(ae降噪插件合集)

Red Giant Magic Bullet Suite是一套专业的视频后期处理软件&#xff0c;适用于Adobe Premiere Pro、After Effects等视频编辑软件。它提供了多种精美的视频特效和调色工具&#xff0c;使得视频制作更加专业和出色。 Magic Bullet Suite包括多个插件&#xff0c;其中最为知名的…

安防视频监控平台EasyCVR集成到ios系统不能播放是什么原因?如何解决?

视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;在视频监控播放上&#xff0c;TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放&#xff0c;可同时播放多路视频流&#…

什么是多云? 为什么我们需要多云可观测性 (Observability)?

Observe 是一家提供可观察性云解决方案的公司&#xff0c;以帮助企业加速应用故障排查和问题解决的效率。公司成立于2017年9月&#xff0c;总部位于美国加利福尼亚州圣马特奥。到目前为止&#xff0c;Observe 已经在5轮融资中总共筹集了1.62亿美元。他们最近的一轮融资是在2023…

【EI会议征稿】第二届可再生能源与电气科技国际学术会议(ICREET 2023)

第二届可再生能源与电气科技国际学术会议(ICREET 2023) 2023 2nd International Conference on Renewable Energy and Electrical Technology 2020年中国可再生能源发电规模显著扩大&#xff0c;风力和太阳能发电均呈迅速增长趋势。中国大力推进能源低碳化&#xff0c;减少温…

醒醒吧,这才叫自动化测试最全教程,看完可就业!

最近看到很多粉丝在后台私信我&#xff0c;叫我做一期自动化测试的教程&#xff0c;其实关于这个问题&#xff0c;我也早就在着手准备了&#xff0c;我录制了一整套完整的Python自动化测试的教程&#xff0c;都上传在网盘里&#xff0c;大家有兴趣的可以去看一下&#xff01; 一…

Linux系统下centos中在线添加硬盘后不重启在线扩容linux系统目录不重启系统

Centos7 在线添加硬盘不重启系统 CentOS 7在线添加新磁盘,无需重启 现有环境基本都是线下server以及线上虚拟机等,几乎都支持热插拔,热扩容,所以在线添加新磁盘就尤为重要,这样可以无需中断当前服务或进程也可对其进行添加硬盘操作。 1.添加硬盘: 虚拟机在线状态下对其进行添加…

Ansys Zemax | 如何建立LCD背光源模型

本文建立了楔形LCD背光源模型&#xff0c;并对其进行分析&#xff0c;并按照照明输出标准对其进行优化。 附件下载 联系工作人员获取附件 简介 液晶显示器 (LCDs) 作为一种显示技术&#xff0c;在当今社会中已经得到了广泛的应用。在商业领域中最突出的应用包括计算机显示器…

Blender:使用立方体制作动漫头像

好久没水文章 排名都掉到1w外了 ~_~ 学习一下blender&#xff0c;看能不能学习一点曲面变形的思路 一些快捷键 ctrl 空格&#xff1a;区域最大化&#xff0c;就是全屏 ctrl alt 空格&#xff1a;也是区域最大化 shift b&#xff1a;框选区域然后最大化显示该范围 shift 空…

著名色彩专家预测下一个家居空间的色彩趋势竟然是这个

室内造型师和色彩专家索菲-罗宾逊&#xff08;Sophie Robinson&#xff09;分享了她对今年下半年色彩和涂料流行趋势的预测。她认为色彩文艺复兴就在我们身边。 在此之前&#xff0c;索菲分享了她摆脱 "50 色调米色 "的秘诀&#xff0c;学会在充满中性客厅配色方案和…

Linux下platform驱动框架描述

文章目录 驱动的分离与分层platform模型简介 如果要写复杂的外设驱动&#xff0c;Linux系统就要考虑到驱动的可重用性&#xff0c;因此提出了驱动的分离与分层这样的软件思路&#xff0c;platform设备驱动就是在这种思路下诞生的&#xff0c;其也称为平台设备驱动。 对于Linux这…

一次Go项目进程重启故障问题排查

有个go项目的容器近两天几乎每天都异常重启一次&#xff0c;且两个节点基本都是差不多的时间异常重启。看了监控指标&#xff0c;发现CPU平稳&#xff0c;而内存是缓慢涨上去后&#xff0c;进程被操作系统kill掉&#xff0c;导致pod重启。 从内存指标可以看出&#xff0c;不会…

大量需求测不过来怎么破?

互联网测试少&#xff0c;测试研发比大概在1:5&#xff0c;再加上产品再使足了劲上需求&#xff0c;导致了测试需求量大&#xff0c;测试准备时间短&#xff0c;从而降低了上线质量。那么如何解决呢&#xff1f;测试是质量负责人&#xff0c;要对平台质量负责&#xff0c;于是就…