LeetCode 279完全平方数 139单词拆分 卡码网 56携带矿石资源(多重背包) | 代码随想录25期训练营day45

动态规划算法6

LeetCode 279 完全平方数 2023.12.11

  • 题目链接
  • 代码随想录讲解[链接]
    在这里插入图片描述
int numSquares(int n) {//1确定dp数组,其下标表示j的完全平方数的最少数量//3初始化,将dp[0]初始化为0,用于计算,其他值设为INT_MAX用于递推公式求最小vector<int> dp(n+1,INT_MAX);dp[0] = 0;//2确定递推公式,背包j值的最小完全平方数数量=min(背包值j-i*i的最小完全平方数量+1, 之前遍历的dp[j])//因为是求具体值,而非排列数或组合数,所以先遍历背包或者物品均可for (int i = 1; i <= sqrt(n); i++){for(int j = i*i; j <= n; j++){//背包j值的最小完全平方数数量=min(背包值j-i*i的最小完全平方数量+1, 之前遍历的dp[j])dp[j] = min(dp[j-i*i]+1, dp[j]);}}return dp[n];
}

LeetCode 139 单词拆分 2023.12.11

  • 题目链接
  • 代码随想录讲解[链接]
    在这里插入图片描述
bool wordBreak(string s, vector<string>& wordDict) {//用于搜索函数搜索某一子串,string类型没有find()函数,与循环体中注释语句配合使用//unordered_set<string> wordSet(wordDict.begin(), wordDict.end());//1确定dp数组及下标含义,dp[i]表示(0,i)子字符串能否被拼接出//3初始化,dp[0]不能为false,否则后续都为false;其他值默认falsevector<bool> dp(s.size()+1, false);dp[0] = true;string cur;//2确定递推公式,4确定遍历顺序//dp[i]表示(0,i)子字符串能否被拼接出,当(j,i)子字符串在字典中且(0,j)子字符串能被拼接出时dp[i]为true//该题为完全背包问题,且具有排列顺序,所以先遍历背包后遍历物品for (int i = 1; i <= s.size(); i++){for(int j = 0; j <= i; j++){//背包容量为i,判断(j,i)与(0,j)是否可拼接cur = s.substr(j, i-j);//if(wordSet.find(cur) != wordSet.end() && dp[j] == true)if(find(wordDict.begin(), wordDict.end(), cur) != wordDict.end() && dp[j] == true)dp[i] = true;}}return dp[s.size()];
}

卡码网 56 携带矿石资源(多重背包) 2023.12.11

  • 题目链接
  • 代码随想录讲解[链接]
    在这里插入图片描述
#include<bits/stdc++.h>
using namespace std;int main()
{//背包容量,矿石种类int bagSize, sortSize;cin >> bagSize >>sortSize;//每种矿石的重量、价值、及数量vector<int> weight(sortSize, 0);vector<int> price(sortSize, 0);vector<int> num(sortSize, 0);for(int i = 0; i < sortSize; i++)cin >> weight[i];for(int i = 0; i < sortSize; i++)cin >> price[i]; for(int i = 0; i < sortSize; i++)cin >> num[i];//1确定dp数组及下标含义,这里表示容量为i的背包能装矿石的最大价值//3初始化,所有背包在没放物品时默认价值为0vector<int> dp(bagSize+1, 0);//2确定递推公式,4确定遍历顺序//递推公式中,k表示第i中物品的个数,容量为j的背包最大价值=//max(上次遍历物品的j容量背包最大价值,j-k*weight[i]容量大小的背包的最大价值+k个i物品的价值)for(int i = 0; i < sortSize; i++){for(int j = bagSize; j >= weight[i]; j--){for(int k = 1; k <= num[i] && j >= k*weight[i]; k++){dp[j] = max(dp[j-k*weight[i]] + k*price[i], dp[j]);}}}cout << dp[bagSize] << endl;return 0;
}

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

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

相关文章

物料分类帐概览

原文地址&#xff1a;Overview: What is SAP Material Ledger? | SAP Blogs 物料分类账是收集物料主数据存储在物料主数据中的物料交易数据的工具。 物料分类帐使用此数据来计算价格以评估这些物料。 物料台账是实际成本核算的基础。它允许以多种货币对材料库存进行评估&am…

对象的生离死别

对象的生离死别 实验介绍 在构建一个类时&#xff0c;一般情况下需要编写构造函数、拷贝构造函数以及析构函数&#xff0c;这将直接影响程序的运行。而初始化列表是在调用构造函数时初始化参数的方式。 一个对象从实例化到销毁的历程&#xff1a; 知识点 内存分区构造函数exp…

java中什么是Spring Bean?

在Spring框架中&#xff0c;一个"Bean"是指由Spring IoC容器所管理的对象。这个对象可以是Java类的实例&#xff0c;也可以是引用其他对象的引用、集合或者是简单类型。Spring Bean是应用中由IoC容器负责创建、装配和管理的对象。 Spring中的Bean具有以下特征&#…

地牢手册-3d

Description 你进入了一个3D的宝藏地宫中探寻到了宝藏&#xff0c;你可以找到走出地宫的路带出宝藏&#xff0c;或者使用炉石空手回家。 地宫由立方体单位构成&#xff0c;立方体中不定会充满岩石。向上、下、前、后、左、右移动一个单位需要一分钟。你不能对角线移动并且地宫…

LabVIEW开发矿井排水监控系统

LabVIEW开发矿井排水监控系统 针对矿井水害对煤矿安全生产构成的威胁&#xff0c;设计了一种基于嵌入式PLC和LabVIEW的矿井排水监控系统。该系统结合了PLC的可靠控制与单片机的应用灵活性&#xff0c;有效克服了传统排水方法中的不足&#xff0c;如测量不准确、效率低下等问题…

react相关hooks(二)

不写性能优化的时候 const Child (props) > {console.log(child function is recalled)// count1改变时多次执行return (<div><h1>{ props.count2}</h1></div>) } function app () {const [count1.setCount1] useState(0)const [count2.setCount…

ESP8266模块(CH340)零基础实战

USB数据线连接ESP8266模块到电脑 先按住FLASH键,再按一下RST键,然后松开 此时电脑可识别出CH340 COM接口 CH340芯片厂商网址: wch.cn 传输比特率9600 win11自带驱动 下载Arduino IDE

一文了解什么是Selenium自动化测试?

一、Selenium是什么&#xff1f; 用官网的一句话来讲&#xff1a;Selenium automates browsers. Thats it&#xff01;简单来讲&#xff0c;Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作浏览器一样。支持的浏…

【美赛指南】新手小白必备参赛指南

美赛指南 一、2024美赛安排二、题目类型三、选题建议四、美赛前期准备五、常用算法 一、2024美赛安排 报名截至时间&#xff1a;2024年 2月2日 00&#xff1a;00 比赛时间&#xff1a;2024年 2月2日 6&#xff1a;00- 2月6日 9&#xff1a;00 提交截至日期&#xff1a;2024年2…

嵌入式系统复习--概述

文章目录 基本概念嵌入式系统的组成结构嵌入式操作系统嵌入式软件开发环境硬件基础简介下一篇 基本概念 嵌入式计算机&#xff1a;把嵌入到对象体系中、实现对象体系智能化控制的带有微控制器的计算机&#xff0c;称作嵌入式计算机 嵌入式系统&#xff1a;以应用为中心&#…

harmonyOS学习笔记之@Provide装饰器和@Consume装饰器

Provide和Consume&#xff0c;应用于与后代组件的双向数据同步&#xff0c;应用于状态数据在多个层级之间传递的场景。不同于State/Link装饰器修饰的 父子组件之间通过命名参数机制传递&#xff0c;Provide和Consume摆脱参数传递机制的束缚&#xff0c;实现跨层级传递。 其中Pr…

基于Java的招聘系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

OWASP Web 安全测试指南 WSTG

Eoin Keary的前言 软件不安全的问题可能是我们这个时代最重要的技术挑战。支持业务、社交网络等的 Web 应用程序的急剧兴起只会加剧建立一种强大的方法来编写和保护我们的 Internet、Web 应用程序和数据的要求。 在开放 Web 应用程序安全项目 &#xff08;OWASP&#xff09; 中…

HarmonyOS应用开发-手写板

这是一个基于HarmonyOS做的一个手写板应用&#xff0c;只需要简单的几十行代码&#xff0c;就可以实现如下手写功能以及清空画布功能。 一、先上效果图&#xff1a; 二、上代码 Entry Component struct Index {//手写路径State pathCommands: string ;build() {Column() {//…

4-二分-索引二分-搜索旋转排序数组 II

这是索引二分的第四篇算法&#xff0c;力扣链接 已知存在一个按非降序排列的整数数组 nums &#xff0c;数组中的值不必互不相同。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转 &#xff0c;使数…

RocketMQ-源码架构

源码环境搭建 1、主要功能模块 RocketMQ官方Git仓库地址&#xff1a;GitHub - apache/rocketmq: Apache RocketMQ is a cloud native messaging and streaming platform, making it simple to build event-driven applications. RocketMQ的官方网站下载&#xff1a;下载 | R…

现在多种数据库的读写模型对比

目录 mongDB read write ES read write MySql write 总结 mongDB 3.0 版本后的WiredTiger存储引擎 read 1. 应用通过driver 发起Buffer I/O读操作&#xff0c;由操作系统将磁盘数据页加载到文件系统的页缓存区 2. 引擎层读取页缓冲区的数据&#xff0c;进行解压后放…

C++STL算法库中谓词的使用

什么是c的谓词 谓词概念&#xff1a; 谓词函数是一个判断式&#xff0c;一个返回bool值的函数或者仿函数&#xff0c;有几个入参就是几元谓词。一般做一个函数的参数使用【引用自百度百科】。 常见的可以作为谓词的东西&#xff1a;函数、函数指针、函数对象、lambda表达式&am…

2023 年浙江省职业院校技能大赛信息安全管理与评估赛项规程

*2023 年浙江省职业院校技能大赛“高职组”* *“信息安全管理与评估”赛项规程* *一、赛项名称* 赛项名称&#xff1a;信息安全管理与评估 英文名称&#xff1a;Information Security Management and Evaluation 赛项组别&#xff1a;高职 赛项归属产业&#xff1a;电子信…

热电厂发电机组常见故障及预测性维护方法

热电厂的发电机组是关键的能源生产设备&#xff0c;在电力供应中扮演着关键角色。但经过长期运行和高负荷工作&#xff0c;一旦发生故障&#xff0c;可能导致停机、设备损坏甚至引发严重事故。因此&#xff0c;实施有效的预测性维护方法对于确保发电机组的稳定运行至关重要。本…