背包2讲(2.6)

问题1:装箱问题

题解:这题其实本质上也是01背包,只不过算是变式,要求剩余空间最小值,我们可以转换成最大可以装多少的问题,然后就可以很快的写出题的答案

#include<bits/stdc++.h>
using namespace std;
int v,n;
int w[50];
int dp[20005];
int main()
{scanf("%d%d",&v,&n);for(int i=0;i<n;i++){scanf("%d",&w[i]);}for(int i=0;i<n;i++){for(int j=v;j>=w[i];j--){dp[j]=max(dp[j],dp[j-w[i]]+w[i]);}}printf("%d",v-dp[v]);return 0;
}

问题2:开心的金明 

 

题解:和第一道题一样都属于01背包只不过是一个变式,因此我们还是可以找出其中的关系式

dp[j]=max(dp[j],dp[j-v[i]]+v[i]*w[i])      (i代表第i个物品,j代表钱数为j) 

#include<bits/stdc++.h>
using namespace std;
int n,w1;
int w[30];
int v[30];
int dp[30005];int main()
{scanf("%d%d",&w1,&n);for(int i=0;i<n;i++){scanf("%d%d",&w[i],&v[i]);}for(int i=0;i<n;i++){for(int j=w1;j>=w[i];j--){dp[j]=max(dp[j],dp[j-w[i]]+w[i]*v[i]);}}printf("%d",dp[w1]);return 0;
}

问题3:小A点菜

题解:这题也是很有意思昂,和平常的01背包终于换了个考法了,但仔细思索发现还是那样,所以难度也不是很大,但是需要找到相应的递推关系式dp[j]=dp[j]+dp[j-v[i]];

#include <bits/stdc++.h>
using namespace std;
int n,m;
int v[105];
int dp[10005];int main()
{int flag=0x3f3f3f3f;scanf("%d%d",&n,&m);for(int i=0;i<n;i++){scanf("%d",&v[i]);if(v[i]<flag)flag=v[i];}dp[0]=1;for(int i=0;i<n;i++){for(int j=m;j>=v[i];j--){dp[j]=dp[j]+dp[j-v[i]];}}printf("%d",dp[m]);return 0;
}

 问题4:精卫填海

 

题解:典型的01背包变式,但是我们需要额外设置一个变量,用于更新最小消耗的体力 

只要满足了k(要求的填平所需要的最小体积)就可以更新

#include<bits/stdc++.h>
using namespace std;
int v,n,c;
int k[10005];
int m[10005];
int dp[10005];
int main()
{scanf("%d%d%d",&v,&n,&c);for(int i=0;i<n;i++){scanf("%d%d",&k[i],&m[i]);}int sum=-1;for(int i=0;i<n;i++){for(int j=c;j>=m[i];j--){dp[j]=max(dp[j],dp[j-m[i]]+k[i]);if(dp[j]>=v){sum=max(sum,c-j);}}}if(sum==-1){printf("Impossible");}elseprintf("%d",sum);return 0;
}

 问题5:Bessie's Weight Problem G

 题解,很简单和第1,2题都是一个模版没啥可说的

#include<bits/stdc++.h>
using namespace std;int h,n;
int w[505];
int dp[45005];
int main()
{scanf("%d%d",&h,&n);for(int i=0;i<n;i++){scanf("%d",&w[i]);}for(int i=0;i<n;i++){for(int j=h;j>=w[i];j--){dp[j]=max(dp[j],dp[j-w[i]]+w[i]);}}printf("%d",dp[h]);return 0;
}

问题6:Hay For Sale S

 

题解:很简单的01背包问题,没什么过多解释,找出关系式就好

#include<bits/stdc++.h>
using namespace std;
int w,n;
int v[5005];
int dp[50005];
int main()
{scanf("%d%d",&w,&n);for(int i=0;i<n;i++){scanf("%d",&v[i]);}for(int i=0;i<n;i++){for(int j=w;j>=v[i];j--){dp[j]=max(dp[j],dp[j-v[i]]+v[i]);}}printf("%d",dp[w]);return 0;
}

 总结

做这种动态规划问题,一定要有一个思路,那就是去找动规五部曲

1.明白dp数组含义

2.找到dp关系式

3.给dp数组赋初值

4.遍历顺序

5.打印数组,检查错误

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

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

相关文章

Positive Technologies 帮助修复了流行的 Yealink 视频会议系统中的一个危险漏洞

Yealink 感谢我们的专家发现了视频会议系统 Yealink Meeting Server 中的一个关键漏洞 该公司在全球 IP 电话市场排名第一&#xff0c;是五大线上会议解决方案供应商之一&#xff0c;其产品已在 140 多个国家和地区使用。 漏洞 YVD-2023-1257833 (BDU:2024-00482) 属于操作系…

打包 iOS 的 IPA 文件

目录 摘要 引言 准备 选择证书类型 创建应用程序 设置应用程序标识和证书 配置构建设置 构建应用程序 导出IPA 签名和导出 代码案例演示 完成 总结 参考资料 摘要 本篇博客将为您介绍如何打包iOS的IPA文件。从APP提交、创建应用程序、设置应用程序标识和证书、配…

centos安装harbor

安装docker yum install epel-release yum-utils#docker官网源 yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repoyum install docker-ce -y 安装docker-compose curl -SL https://github.com/docker/compose/releases/download/v2…

【自然语言处理-工具篇】spaCy<1>--介绍及安装指南

目录 前言 安装指南 pip conda spaCy升级 总结 前言 spaCy是一个开源的自然语言处理库,用于处理和分析文本数据。它提供了许多功能,包括分词、词性标注

2023-总结

文章目录 工作贡献集成登录角色今年的工作感想 总结感想题外话 工作 今年也是换了公司。 在上个公司首先就是学到了技术&#xff0c;拓展了知识层面。至于离开&#xff0c;也是简单得想多去走走试试。感谢公司和同事的栽培和包容。 来到现在任职的公司同事也是非常友好。刚来…

EMC防护

EMI是指电子设备在自身工作过程中产生的电磁波&#xff0c;对外发射并对设备其它部分或外部其它设备造成干扰。EMI测试项目包括电源线传导骚扰&#xff08;CE&#xff09;测试、信号、控制线传导骚扰&#xff08;CE&#xff09;测试、辐射骚扰&#xff08;RE&#xff09;测试、…

记录关于node接收并解析前端上传excel文件formData踩的坑

1.vue2使用插件formidable实现接收文件&#xff0c;首先接口不可以使用任何中间件&#xff0c;否则form.parse()方法不执行。 const express require(express) const multipart require(connect-multiparty); const testController require(../controller/testController)/…

Android 横屏应用开发如何隐藏左边黑色边缘

最近公司开发一个横屏应用的项目&#xff0c;Phone和Pad一套代码编译&#xff0c;需要考虑到全局横屏状态下的应用&#xff0c;起初竖屏的时候代码是没问题的&#xff0c;可是到切换横屏遇到了黑边问题&#xff0c;先来看看竖屏的时候怎么写的 setContentView之前设置 getWind…

力扣53. 最大子数组和(滑动窗口,动态规划)

Problem: 53. 最大子数组和 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 思路1:滑动窗口 1.为求出最大连续的子数组和,我们逻辑上假设有一个窗口在原数组上滑动, 欲求出最大连续,则需要保证窗口中的所有元素和最起码大于0; 2.即当当前窗口中的元素值的和小于0…

[自然语言处理|NLP] 文本分类与情感分析,数据预处理流程,包括了同义词替换和拼写纠正,以及使用NLTK库和TextBlob库进行标记化和情感分析(附代码)

[自然语言处理|NLP] 文本分类与情感分析,数据预处理流程,包括了同义词替换和拼写纠正,以及使用NLTK库和TextBlob库进行标记化和情感分析(附代码)。 自然语言处理(Natural Language Processing,简称NLP)是人工智能领域的一个重要分支,涉及了处理和理解人类语言的技术…

带你实现用自己域名打开Tomcat

文章目录 Tomcat1.1、Tomcat 下载1.2、Tomcat 文件图解1.3、 启动或关闭 Tomcat1.3.1、 启动1.3.2、 关闭程序2.1、 修改端口号2.2、修改主机名称Tomcat 1.1、Tomcat 下载 首先去Tomcat 官网下载找到我们需要下载的版本 1.2、To

Linux 服务器安装maven

1、压缩文件下载Maven – Download Apache Maven 2、解压 tar -xvf apache-maven-3.8.4-bin.tar.gz 3、配置环境变量 在/etc/profile中保存Maven的环境变量&#xff1a; export M2_HOME/opt/server/apache-maven-3.5.4 export PATH$PATH:$M2_HOME/bin 4、通过source生效文件 so…

第4节、电机多段转动【51单片机+L298N步进电机系列教程】

↑↑↑点击上方【目录】&#xff0c;查看本系列全部文章 摘要&#xff1a;本节介绍用控制步进电机三个主要参数角度、速度、方向&#xff0c;实现简单的步进电机多段控制 一、目标功能 输入多个目标角度&#xff0c;以及每个角度对应的速度&#xff0c;实现步进电机的多段多速…

“小手艺”有“大情怀”, 《青春手艺人》赋能乡村振兴,传承新时代文化

文化传承发展要坚持“守正创新”&#xff0c;以守正创新的正气和锐气&#xff0c;赓续历史文脉、谱写当代华章。中央广播电视总台农业农村节目中心推出的聚焦年轻手艺人故事的微纪录片《青春手艺人》&#xff0c;为守正创新的文化传承增添了新的鲜活的青春故事。节目积极响应二…

为 Spring Boot 项目配置 Logback 日志

关于 Logback 日志系统是一个线上项目必备的素质之一&#xff0c;代表性的日志框架 Log4j、SLF4J、Logback 这哥仨竟然是亲兄弟&#xff0c;他们有一个亲爹&#xff0c;那就是巨佬 Ceki Gulcu。 由于 Spring Boot 的默认日志框架选用的 Logback&#xff0c;再加上 Log4j2 之前…

【buuctf--九连环】

这题主要是记录一下新的隐写工具 steghide 用binwalk 看一下 jpg 图片,还是有不少东西&#xff0c;那么-e 提取一下实际上通过binwalk 提取就避免了伪加密的问题&#xff0c;详见BUUCTF-九连环_九连环 buuctf-CSDN博客 其中 qwe.zip为真加密&#xff0c;需要找出密码&#xff…

springboot158基于springboot的医院资源管理系统

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

MySQL 小技巧:利用 xtrabackup 完全备份,增量备份及还原

案例&#xff1a;利用 xtrabackup 8.0 完全备份,增量备份及还原 MySQL8.0 在面对海量数据时&#xff0c;我们无法做到每天全量备份&#xff0c;因此 只能每周做一次全量备份。 而每天的话则进行增量备份&#xff0c;确保数据安全。 注意点&#xff1a;MySQL 8.0.26 版本对应需要…

【开源】SpringBoot框架开发城市桥梁道路管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询城市桥梁4.2 新增城市桥梁4.3 编辑城市桥梁4.4 删除城市桥梁4.5 查询单个城市桥梁 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的城市桥梁道路管理系统&#xff0c;支持…

第3节、电机定速转动【51单片机+L298N步进电机系列教程】

↑↑↑点击上方【目录】&#xff0c;查看本系列全部文章 摘要&#xff1a;本节介绍用定时器定时的方式&#xff0c;精准控制脉冲时间&#xff0c;从而控制步进电机速度。 一、计算过程 电机每一步的角速度等于走这一步所花费的时间&#xff0c;走一步角度等于步距角&#xff…