01背包问题合集 蓝桥OJ
一、蓝桥OJ 1174小明的背包1 模板题

思路:
用二维数组dp判断最大价值,i表示物品数量,j表示物品体积,如果 j > V 则无需继续, j >= w 物品还能再增加,同样价值也增加,否则继承之前的价值,在之间找Max,最大价值。
#include<bits/stdc++.h>
using namespace std;const int N = 1e3 + 4;
int dp[N][N];int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int n, V; cin >> n >> V;for(int i = 1; i <= n; i++){int w, v; cin >> w >> v;for (int j = 1; j <= V; j++){if (j >= w)dp[i][j] = max(dp[i-1][j], dp[i-1][j-w] + v);else dp[i][j] = dp[i-1][j];}}cout << dp[n][V] << '\n';return 0;
}
优化思路:
避免新数据更新为新数据。上面的代码每次j的下标都是从小到大, 故可以直接当作一个数组,每次更新时,从后往前更新。
#include<bits/stdc++.h>
using namespace std;
const int N = 1e3 + 4;
int dp[N];int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int n, V; cin >> n >> V;for (int i = 1; i <= n; i++){int w, v;cin >> w >> v;for (int j = V; j >= w; j--){dp[j] = max(dp[j], dp[j-w]+v);}}cout << dp[V] << '\n';return 0;
}
二、蓝桥OJ 2223背包与魔法

思路:
这道题可以分成三类,1.不选 2.选但不用魔法 3.选且用魔法, 三种中取最大价值的。
#include<bits/stdc++.h>
using namespace std;const int N = 1e4+5;
int dp[N][2]; // 0的时候表示魔法已用,1表示魔法没用int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int n, m, k; cin >> n >> m >> k;for (int i = 1; i <= n; i++){int w, v; cin >> w >> v;for (int j = m; j >= 0; --j){if (j >= w){dp[j][0] = max(dp[j][0],dp[j-w][0]+v);dp[j][1] = max(dp[j][1],dp[j-w][1]+v);}if (j >= w + k){dp[j][1] = max(dp[j][1], dp[j-w-k][0]+2*v);}}}cout << max(dp[m][0], dp[m][1]) << '\n';return 0;
}
三、蓝桥OJ 3741倒水

思路:
用一个二维dp数组记录所有满意度之和的最大值,dp[i][j]中的i表示1~i个客人,j表示 倒水j毫升。
分3种情况,是否倒着写要看情况:
1.当j < a时,dp[i][j] = dp[i-1][j]+e
2.当j >= a and j < c时, dp[i][j] = max(dp[i-1][j]+e, dp[i-1][j-a]+b)
3.当j>=c时, dp[i][j] = max(dp[i-1][j-c]+d , max(dp[i-1][j]+e, dp[i-1][j-a]+b))
下面的代码第一次写忘记了开long long!!!一定要记住
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e3 + 8;
ll dp[N][N];int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int n, m; cin >> n >> m;for (int i = 1; i <= n; i++){int a, b, c, d, e;cin >> a >> b >> c >> d >> e;for (int j = 0; j <= m; j++){if (j < a) dp[i][j] = dp[i-1][j]+e;else if (j >= a && j < c) dp[i][j] = max(dp[i-1][j]+e,dp[i-1][j-a]+b);else if (j >= c) dp[i][j] = max(dp[i-1][j-c]+d, max(dp[i-1][j]+e,dp[i-1][j-a]+b));}}cout << dp[n][m] << '\n';return 0;
}
四、蓝桥OJ 3637盗墓分赃2

尽量把数组开大一点,不然会有测试点错误。
思路:
01背包的变形,宝藏的重量即宝藏的价值,当宝藏的重量和为奇数,一定不能平均的分成两份。后面跟01背包一样
#include<bits/stdc++.h>
using namespace std;
const int N = 2e4 + 8;
int a[N],dp[N];int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int n;cin >> n;int sum = 0;for (int i = 1; i <= n; i++){cin >> a[i];sum += a[i];}if (sum&1){cout << "no" << '\n';return 0;}sum = sum / 2;for (int i = 1; i <= n; i++){for (int j = sum; j >= a[i]; j--){dp[j] = max(dp[j],dp[j-a[i]]+a[i]);}}string res = (dp[sum] == sum) ? "yes": "no";cout << res << '\n';return 0;
}
五、蓝桥OJ 5118小兰的神秘礼物

跟 盗墓分赃 一模一样
#include<bits/stdc++.h>
using namespace std;
const int N = 1e3 + 8;
int x[N], dp[N];int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int V; cin >> V;//箱子的容量int n; cin >> n;//收集的小物件总数for (int i = 1; i <= n; i++) cin >> x[i];for (int i = 1; i <= n; i++)for (int j = V; j >= x[i]; j--) dp[j] = max(dp[j],dp[j-x[i]]+x[i]);cout << V-dp[V] << '\n';return 0;
}
相关文章:
01背包问题合集 蓝桥OJ
一、蓝桥OJ 1174小明的背包1 模板题 思路: 用二维数组dp判断最大价值,i表示物品数量,j表示物品体积,如果 j > V 则无需继续, j > w 物品还能再增加,同样价值也增加,否则继承之前的价值&am…...
Nuxt3 实战 (三):使用 release-it 自动管理版本号和生成 CHANGELOG
release-it 能做什么? 增加版本号并提交 Git生成变更日志(Changelog)并提交到 Git创建 Git 标签并推送到远程仓库发布到 npm 等软件仓库在 GitHub、GitLab 等平台创建发行版 前置知识 在看这篇文章之前,我们有必要了解一下 Sem…...
鸿蒙OS开发实战:【自动化测试框架】使用指南
概述 为支撑HarmonyOS操作系统的自动化测试活动开展,我们提供了支持JS/TS语言的单元及UI测试框架,支持开发者针对应用接口进行单元测试,并且可基于UI操作进行UI自动化脚本的编写。 本指南重点介绍自动化测试框架的主要功能,同时…...
算法(二分查找)
1.给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。 注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。 示例 1…...
运筹学基础(六)列生成算法(Column generation)
文章目录 前言从Cutting stock problem说起常规建模Column generation reformulation 列生成法核心思想相关概念Master Problem (MP)Linear Master Problem (LMP)Restricted Linear Master Problem (RLMP)subproblem(核能预警,非常重要) 算法…...
[阅读笔记] 电除尘器类细分市场2023年报
0.原始链接: 2023年除尘行业评述及2024年发展展望-北极星大气网 中国环保产业协会 供稿 1.重要信息摘录 市场占有率最大的是电除尘和袋式除尘行业装备产品名录: 国家鼓励发展的重大环保技术装备目录(2023年版)权威评审机构:…...
Kubernetes学习笔记11
k8s集群核心概念:pod: 在K8s集群中是不能直接运行容器的,K8s的最小调度单元是Pod,我们要使用Pod来运行应用程序。 学习目标: 了解pod概念: 了解查看pod方法 了解创建pod方法 了解pod访问方法 了解删除…...
✌2024/4/3—力扣—无重复字符的最长子串
代码实现: 解法一:暴力法 int lengthOfLongestSubstring(char *s) {int hash[256] {0};int num 0;for (int i 0; i < strlen(s); i) {int count 0;for (int j i; j < strlen(s); j) {if (hash[s[j]] 0) {hash[s[j]];count;num num > cou…...
Tauri 进阶使用与实践指南
Tauri 进阶使用与实践指南 调试技术 在 Tauri 应用开发中,调试分为两大部分:Web 端与 Rust 控制台。 Web 端调试 在 Web 端界面,可以直接采用浏览器内置的开发者工具进行调试。在 Windows 上,可以通过快捷键 Ctrl Shift i 打…...
2024年最新社交相亲系统源码下载
最新相亲系统源码功能介绍 参考:相亲系统源码及功能详细介绍 相亲系统主要功能 (已完成) 相亲系统登录注册 相亲系统会员列表 相亲系统会员搜索 相亲系统会员详情 相亲系统会员身份认证 - 对接阿里云 相亲系统资源存储 - 对接七…...
git知识
如何将develop分支合并到master分支 #简单版 git checkout master git pull origin master git merge origin/develop # 解决可能的冲突并提交 git push origin master#复杂版 git checkout master # 拉取远程 master 分支的最新代码并合并到本地 git pull origin master # 拉…...
代码随想录算法训练营第三十五天|860.柠檬水找零、406.根据身高重建队列、452.用最少数量的箭引爆气球
代码随想录算法训练营第三十五天|860.柠檬水找零、406.根据身高重建队列、452.用最少数量的箭引爆气球 860.柠檬水找零 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯…...
golang defer实现
derfer : 延迟调用,函数结束返回时执行,多个defer按照先进后出的顺序调用 原理:底层通过链表实现,每次新增的defer调用,通过头插法插入链表;defer执行时,从链表头开始遍历,相当于实…...
数据仓库实践
什么是数据仓库? 数据仓库是一个用于存储大量数据并支持数据分析与报告的系统。它通常用于集成来自不同来源的数据,提供一个统一的视图,以便进行更深入的分析和决策。 数据仓库的主要优势? 决策支持:为企业决策提供可靠…...
深入浅出 -- 系统架构之微服务标准组件及职责
我们来认识一下微服务架构在Java体系中依托哪些组件实现的。 相对于单体架构的简单粗暴,微服务的核心是将应用打散,形成多个独立提供的微服务,虽然从管理与逻辑上更符合业务需要。但微服务架构也带来了很多急需解决的核心问题: 1…...
IP协议中的四大支柱:DHCP、NAT、ICMP和IGMP的功能剖析
DHCP动态获取 IP 地址 我们的电脑通常都是通过 DHCP 动态获取 IP 地址,大大省去了配 IP 信息繁琐的过程。 客户端首先发起 DHCP 发现报文(DHCP DISCOVER) 的 IP 数据报,由于客户端没有 IP 地址,也不知道 DHCP 服务器的…...
基于Socket简单的UDP网络程序
⭐小白苦学IT的博客主页 ⭐初学者必看:Linux操作系统入门 ⭐代码仓库:Linux代码仓库 ❤关注我一起讨论和学习Linux系统 1.前言 网络编程前言 网络编程是连接数字世界的桥梁,它让计算机之间能够交流信息,为我们的生活和工作带来便利…...
计算机思维
计算机思维是一种运用计算机科学的基础概念和方法来解决问题、设计系统和理解人类行为的思维方式。它包括以下几个方面: 1. 抽象和建模:将复杂的现实问题抽象为计算机可以处理的模型,通过定义对象、属性和关系来构建问题的逻辑结构。 2. 算法…...
如何判断一个linux机器是物理机还是虚拟机
https://blog.csdn.net/qq_32262243/article/details/132571117 第一种方式:dmesg命令 [rootnshqae01adm03 ~]# dmesg | grep -i hypervisor [ 0.000000] Hypervisor detected: Xen PV [ 1.115297] VPMU disabled by hypervisor. 在我的机器上 dmesg也是能够用来判…...
python用requests的post提交data数据以及json和字典的转换
环境:python3.8.10 python使用requests的post提交数据的时候,代码写法跟抓包的headers里面的Content-Type有关系。 (一)记录Content-Type: application/x-www-form-urlencoded的写法。 import requestsurlhttps://xxx.comheade…...
从内存视角拆解float和double:用C语言和调试器带你‘看见’IEEE754的二进制世界
从内存视角拆解float和double:用C语言和调试器带你‘看见’IEEE754的二进制世界 在计算机科学中,浮点数的表示和处理是一个既基础又关键的话题。对于从事系统编程、性能优化或逆向工程的开发者来说,理解浮点数在内存中的实际存储形式不仅能帮…...
制造业数字鸿沟的终结者:零依赖STL到STEP转换引擎的技术突破与应用实践
制造业数字鸿沟的终结者:零依赖STL到STEP转换引擎的技术突破与应用实践 【免费下载链接】stltostp Convert stl files to STEP brep files 项目地址: https://gitcode.com/gh_mirrors/st/stltostp 在数字化制造与工业4.0的浪潮中,制造业企业面临着…...
极简风项目交付倒计时!:紧急修复MJ --v 6.2中隐藏的1.33倍宽高比偏移Bug,避免客户验收驳回(含补救Prompt包)
更多请点击: https://intelliparadigm.com 第一章:极简风项目交付倒计时! 当交付周期压缩至 72 小时,极简风不再是一种美学选择,而是工程效率的刚性约束。我们摒弃冗余文档、跳过非核心评审环节,聚焦于可…...
SimulinkVeriStandLabVIEW协同开发——从模型编译到交互式仪表盘部署
1. 工具链协同开发的核心价值 在电力电子和工业控制领域,快速原型开发往往需要跨越建模、实时测试和人机交互三个关键环节。Simulink、VeriStand和LabVIEW组成的工具链,就像汽车制造的流水线——Simulink是设计图纸的工程师,VeriStand是组装车…...
Bifrost:轻量高效的实时数据同步平台架构与实战
1. 项目概述:Bifrost,一个被低估的现代数据同步利器如果你正在处理跨数据库、跨数据源的数据同步任务,并且对传统ETL工具的笨重、配置复杂感到头疼,那么maximhq/bifrost这个项目绝对值得你花时间深入了解。我第一次接触Bifrost是在…...
Windows上运行Swift代码的三种实战路径
1. 为什么Windows开发者需要Swift? Swift作为苹果生态的主力编程语言,近年来在服务端开发、机器学习等领域的应用越来越广泛。但很多刚接触Swift的Windows开发者会发现:官方文档里压根没提Windows支持!这其实是因为Swift最初就是…...
终极免费换肤方案:R3nzSkin国服版完整使用教程
终极免费换肤方案:R3nzSkin国服版完整使用教程 【免费下载链接】R3nzSkin-For-China-Server Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3/R3nzSkin-For-China-Server 想要在英雄联盟国服免费体验所有皮肤&#x…...
智谱AI GLM-5V-Turbo:视觉生成代码的技术革命与实战架构
摘要:2026年5月,智谱AI联合清华大学发布了GLM-5V-Turbo多模态编程基座模型,在Design2Code基准测试中以94.8分的成绩超越Claude Opus的77.3分,实现了从"文本生成代码"到"视觉生成代码"的范式跃迁。本文深入解析该模型的核心技术架构——CogViT视觉编码器…...
基于GitHub Actions的自动化代码质量守护:CodeBuddy实战指南
1. 项目概述与核心价值最近在和一些团队做代码评审和协作时,我经常遇到一个痛点:大家写的代码风格各异,注释要么缺失要么过时,一些潜在的安全漏洞和性能问题在提交前很难被系统性地发现。虽然市面上有各种静态分析工具,…...
如何为深信服超融合平台上的应用快速接入大模型能力
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 如何为深信服超融合平台上的应用快速接入大模型能力 对于在深信服超融合平台上部署业务应用的企业开发团队而言,集成智…...
