当前位置: 首页 > news >正文

代码随想录算法训练营 ---第四十六天

第一题:

简介:

本题的重点在于确定背包容量和物品数量

  1. 确定dp数组以及下标的含义

dp[i] : 字符串长度为i的话,dp[i]为true,表示可以拆分为一个或多个在字典中出现的单词。 

     2.确定递推公式

如果确定dp[j] 是true,且 [j, i] 这个区间的子串出现在字典里,那么dp[i]一定是true。(j < i )。

所以递推公式是 if([j, i] 这个区间的子串出现在字典里 && dp[j]是true) 那么 dp[i] = true。

     3.dp数组如何初始化

dp[0]初始为true完全就是为了推导公式。下标非0的dp[i]初始化为false,只要没有被覆盖说明都是不可拆分为一个或多个在字典中出现的单词。

    4.确定遍历顺序

题目中说是拆分为一个或多个在字典中出现的单词,所以这是完全背包。两种遍历顺序都可以,因为我们只要确定能够拼成就行

  1. 举例推导dp[i]

以输入: s = "leetcode", wordDict = ["leet", "code"]为例,dp状态如图:

139.单词拆分

代码实现:

第二题:

简介:

本题时纯多重背包的应用,但是其实和01背包的区别在于他的物品有个数,一个物品可能有多个。我们只要将其全部展开就可以了。

代码实现: 

#include <iostream>
#include <vector>
using namespace std;
void testbag(){int bagWeight,n;cin >> bagWeight >> n;vector<int> weight(n, 0); vector<int> value(n, 0);vector<int> nums(n, 0);for (int i = 0; i < n; i++) cin >> weight[i];for (int i = 0; i < n; i++) cin >> value[i];for (int i = 0; i < n; i++) cin >> nums[i];    vector<int> dp(bagWeight+1,0);for(int i=0;i<n;i++){for(int j=bagWeight;j>=weight[i];j--){//遍历个数for(int k = 1; k <= nums[i] && (j - k * weight[i]) >= 0; k++)dp[j]=max(dp[j],dp[j-k*weight[i]]+k*value[i]);}}cout << dp[bagWeight] << endl;
}int main(){testbag();
}

总结: 

有些题还是有点抽象,需要多加练习,提高对题的敏感程度。继续加油!

http://www.lryc.cn/news/246547.html

相关文章:

  • MySQL-02-InnoDB存储引擎
  • Qt路径和Anaconda中QT路径冲突(ubuntu系统)
  • vue2.js添加水印
  • Eureka简单使用做微服务模块之间动态请求
  • 竞赛选题 题目:基于深度学习卷积神经网络的花卉识别 - 深度学习 机器视觉
  • css-tricks网站图例
  • Scrapy框架内置管道之图片视频和文件(一篇文章齐全)
  • Linux文件与路径
  • 【Qt】获取当前系统用户名:9种获取方式
  • ECMAScript2023你学习了吗?
  • 【从删库到跑路 | MySQL总结篇】数据库基础(增删改查的基本操作)
  • 【JMeter】配置元件
  • 数据采集静态存储SRAM芯片EMI7064
  • 网络运维与网络安全 学习笔记2023.11.27
  • ansible学习
  • 使用Kibana让es集群形象起来
  • 机器学习调参指南:提升模型性能的关键步骤
  • 图书管理系统源码,图书管理系统开发,图书借阅系统源码四TuShuManager应用程序MVC视图View
  • Visual Studio2010保姆式安装教程(VS2010 旗舰版),以及如何运行第一个C语言程序,超详细
  • 第四节HarmonyOS 熟知开发工具DevEco Studio
  • 安防视频监控/视频融合/云存储EasyCVR页面数据显示不全该如何解决?
  • vatee万腾的数字化奇点:Vatee科技的前沿创新之路
  • C#,《小白学程序》第六课:队列(Queue)其二,队列的应用,编写《实时叫号系统》
  • 打造数字人偶像的意义与影响
  • Spring加载Bean的多种方式
  • minio分布式存储系统
  • Kafka 如何保证消息消费的全局顺序性
  • boa+cgi上传文件超过1M报错问题
  • 抖去推--短视频账号矩阵系统saas工具源码技术开发(源头)
  • 【服务器能干什么】搭建一个短网址平台,可以查看数据详情!