【蓝桥】二维DP--摆花
📌题目描述
📌解题思路
📌完整代码
📌举例
📌题目描述

📌解题思路
动态规划(DP) 问题,核心是 “前 i 种物品,每种物品最多可以使用x 次,组成总和 j 的方案数”
dp[i, j] = dp[i - 1, j] + dp[i - 1, j - 1] + ... + dp[i - 1, j - a[i]]
📌完整代码
#include <iostream>using namespace std;const int N = 110, mod = 1000007;int n, m, dp[N][N];int main()
{cin >> n >> m;dp[0][0] = 1; // 初始化,0个物品凑成0的方案数为1for (int i = 1; i <= n; i++){int x;cin >> x; // 读取物品 i 可用的最大次数for (int j = 0; j <= m; j++){// k 不能超过当前背包容量 j,也不能超过当前物品数量 xfor (int k = 0; k <= j && k <= x; k++){dp[i][j] = (dp[i][j] + dp[i - 1][j - k]) % mod;}}}cout << dp[n][m] << endl; // 输出方案数return 0;
}
- 三重循环:
- 外层
i(遍历n个物品), - 中层
j(遍历0~m的总和), - 内层
k(最多遍历x次)。
- 外层
- 时间复杂度:O(n × m × x)
- 在
x取较大值时,可能会 超时。
- 在
📌举例
n = 3(3种花),m = 5(总共需要摆放5朵花),每种花的数量限制如下:
- 第1种花最多可以用3次。
- 第2种花最多可以用2次。
- 第3种花最多可以用1次。
迭代第1种花

dp[1][0] = 1
dp[1][1] = 1
dp[1][2] = 1
dp[1][3] = 1
dp[1][4] = 0
dp[1][5] = 0
迭代第2种花

dp[2][0] = 1
dp[2][1] = 2
dp[2][2] = 3
dp[2][3] = 4
dp[2][4] = 2
dp[2][5] = 1
迭代第3种花

dp[3][0] = 1
dp[3][1] = 3
dp[3][2] = 6
dp[3][3] = 10
dp[3][4] = 11
dp[3][5] = 10
最终,dp[3][5] = 10,表示用3种花摆放5朵花的方案数为10。
相关文章:
【蓝桥】二维DP--摆花
📌题目描述 📌解题思路 📌完整代码 📌举例 📌题目描述 📌解题思路 动态规划(DP) 问题,核心是 “前 i 种物品,每种物品最多可以使用x 次,组成总和…...
在AMLOGIC android14 平台上使用adb
1.修改bootloader 编译:添加 --fastboot-write cd bootloader/uboot-repo ./mk s7d_bm201 --vab --avb2 --fastboot-write #./mk s7_bh201 --avb2 --vab --fastboot-write echo "compiled bootloader success!!!" cp build/u-boot.bin.signed ../../dev…...
力扣-二叉树-222 完全二叉树节点的数量
思路1 利用层序遍历所有节点即可 代码1 class Solution { public:int countNodes(TreeNode* root) {if(root nullptr) return 0;queue<TreeNode*> que;que.push(root);int size 0;while(!que.empty()){size que.size();int length que.size();while(length--){Tre…...
V93K测试机
爱德万V9300(又称V93K)是Advantest公司推出的高端可扩展SoC测试平台,在半导体测试领域具有标杆地位。以下为该设备的详细介绍: ### 一、核心性能与技术优势 1. **高速高精度测试能力** V9300支持高达112 Gbps PAM4信号&…...
【机器学习】监督学习-决策树-CART(Classification and Regression Tree,分类与回归树)详尽版
CART(Classification and Regression Trees)法 CART(分类与回归树)是一种决策树算法,由 Breiman 等人在 1984 年提出。它用于构建分类树(Classification Tree)或回归树(Regression …...
Navicat 迁移数据库 传输数据
Navicat提供的数据传输功能,很好用,可以从一个数据库迁移到另外一个数据库。 步骤:菜单栏----工具—传输—选择源连接和数据库----选择目的地连接和数据库...
Jetpack Compose初体验
入门学习 由于工作需要,我们当前要在老代码的基础上使用 Compose 进行新页面的开发,这项工作主要落在我的身上。因此,我需要先了解 Compose。 这里我入门看的是写给初学者的Jetpack Compose教程,Lazy Layout,有兴趣可…...
ceph部署-14版本(nautilus)-使用ceph-ansible部署实验记录
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、环境信息二、部署步骤2.1 基础环境准备2.2 各节点docker环境安装2.3 搭建互信集群2.4 下载ceph-ansible 三、配置部署文件3.1 使用本地docker3.2 配置hosts…...
【C++】C++ 旅馆管理系统(含 源码+报告)【独一无二】
👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 系列文章目录 目录 系列文章目录一、设计要求二、设…...
快速排序
目录 什么是快速排序: 图解: 递归法: 方法一(Hoare法): 代码实现: 思路分析: 方法二(挖坑法): 代码实现: 思路分析: 非递…...
国内 ChatGPT Plus/Pro 订阅教程
1. 登录 chat.openai.com 依次点击 Login ,输入邮箱和密码 2. 点击升级 Upgrade 登录自己的 OpenAI 帐户后,点击左下角的 Upgrade to Plus,在弹窗中选择 Upgrade plan。 如果升级入口无法点击,那就访问这个网址,htt…...
易仓科技ai面试
请解释PHP中的面向对象编程的基本概念,并举例说明如何在PHP中定义一个类。 回答思路:需理解类、对象、继承和多态等基本概念,并能通过实例代码展示如何定义类及其属性和方法。 . 类(Class) 类是一个封装了数据和操作…...
LabVIEW用户界面(UI)和用户体验(UX)设计
作为一名 LabVIEW 开发者,满足功能需求、保障使用便捷与灵活只是基础要求。在如今这个用户体验至上的时代,为 LabVIEW 应用程序设计直观且具有美学感的界面,同样是不容忽视的关键任务。一个优秀的界面设计,不仅能提升用户对程序的…...
字玩FontPlayer开发笔记14 Vue3实现多边形工具
目录 字玩FontPlayer开发笔记14 Vue3实现多边形工具笔记整体流程临时变量多边形组件数据结构初始化多边形工具mousedown事件mousemove事件监听mouseup事件渲染控件将多边形转换为平滑的钢笔路径 字玩FontPlayer开发笔记14 Vue3实现多边形工具 字玩FontPlayer是笔者开源的一款字…...
低代码与 Vue.js:技术选型与架构设计
在当下数字化转型的浪潮中,企业对应用开发的效率和质量有着极高的追求。低代码开发平台的兴起,为企业提供了一条快速构建应用的捷径,而 Vue.js 作为热门的前端框架,与低代码开发平台的结合备受关注。如何做好两者的技术选型与架构…...
比较循环与迭代器的性能:Rust 零成本抽象的威力
一、引言 在早期的 I/O 项目中,我们通过对 String 切片的索引和 clone 操作来构造配置结构体,这种方法虽然能确保数据所有权的正确传递,但既显得冗长,又引入了不必要的内存分配。随着对 Rust 迭代器特性的深入了解,我…...
一文了解zookeeper
1.ZooKeeper是什么 简单来说,她是一个分布式的,开放源码的分布式应用程序协调服务 具体来说,他可以做如下事情: 分布式配置管理:ZooKeeper可以存储配置信息,应用程序可以动态读取配置信息。分布式同步&a…...
算法题(67):最长连续序列
审题: 需要我们在O(n)的时间复杂度下找到最长的连续序列长度 思路: 我们可以用两层for循环: 第一层是依次对每个数据遍历,让他们当序列的首元素。 第二层是访问除了该元素的其他元素 但是此时时间复杂度来到…...
大中型企业专用数据安全系统 | 天锐蓝盾终端安全 数据安全
天锐蓝盾系列产品是专门为大中型企业量身定制的数据安全防护产品体系,涵盖天锐蓝盾DLP、天锐蓝盾终端安全管理系统、天锐蓝盾NAC以及其他搭配产品,致力于实现卓越的数据安全防护、施行严格的网络准入控制以及构建稳固的终端安全管理体系。通过全方位的防…...
Deepseek解读 | UE像素流送与实时云渲染技术的差别
为了实现UE引擎开发的3D/XR程序推流,绝大多数开发者会研究像素流送(Pixel Streaming)的使用方法,并尝试将插件集成在程序中。对于短时、少并发、演示场景而言,像素流送可以满足基本需求。当3D/XR项目进入落地交付周期后…...
3步构建企业级KMS激活架构:从单机到集群的智能演进
3步构建企业级KMS激活架构:从单机到集群的智能演进 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO KMS_VL_ALL_AIO作为一款智能激活脚本,彻底解决了Windows与Office的批量…...
Arduino - 入门02 - Arduino编程基础 Arduino程序结构,实物与模拟器对照,Arduino常用函数
目录 1,Arduino程序结构 2,开发板上面的端口 2-1,数字端口:D2-D13 ---一共12个端口 2-2,A0-A5 ---6个端口也可以作为数字端口使用 2-3,实物和SimulIDE中对照 3,Arduino中最常用的库函数 3…...
OpenClaw Guardian:为AI Agent部署提供实时监控、成本控制与安全防护
1. 项目概述:为你的AI Agent部署装上“刹车”与“仪表盘”如果你正在使用OpenClaw来部署和管理你的AI Agent,那么你很可能已经体验过那种“失控”的感觉:一个不小心,某个Agent在后台疯狂调用Claude Opus,或者一个本该在…...
别再手动描边了!用Altium Designer的DXF导入功能,5分钟搞定CAD机械结构图转PCB外框
高效机电协同:Altium Designer DXF导入功能在PCB设计中的实战应用 在硬件产品开发流程中,机械结构与电子设计的无缝对接一直是影响项目进度的关键节点。传统的手动描边方法不仅耗时费力,还容易引入人为误差——据统计,约37%的板框…...
如何高效使用视频加速控制器:提升学习与工作效率的终极指南
如何高效使用视频加速控制器:提升学习与工作效率的终极指南 【免费下载链接】videospeed HTML5 video speed controller (for Google Chrome) 项目地址: https://gitcode.com/gh_mirrors/vi/videospeed 视频加速控制器(Video Speed Controller&am…...
专业解决方案:DirectInput转XInput兼容工具让老旧游戏手柄重获新生
专业解决方案:DirectInput转XInput兼容工具让老旧游戏手柄重获新生 【免费下载链接】XOutput DirectInput to XInput wrapper 项目地址: https://gitcode.com/gh_mirrors/xo/XOutput 对于游戏爱好者和模拟器玩家来说,老旧游戏手柄无法兼容现代游戏…...
3分钟玩转PCL启动器:让你的Minecraft体验飞升的秘密武器 [特殊字符]
3分钟玩转PCL启动器:让你的Minecraft体验飞升的秘密武器 🚀 【免费下载链接】PCL Minecraft 启动器 Plain Craft Launcher(PCL)。 项目地址: https://gitcode.com/gh_mirrors/pc/PCL 还在为Minecraft启动慢、模组冲突、内存…...
Windows防火墙命令进阶:netsh advfirewall不只是开关,这些高级配置技巧你该知道
Windows防火墙命令进阶:netsh advfirewall不只是开关,这些高级配置技巧你该知道 在Windows系统中,防火墙是保护计算机免受网络威胁的第一道防线。虽然图形界面提供了基本的防火墙设置选项,但真正强大的功能隐藏在命令行工具netsh …...
R6900P/R7000P刷梅林固件前必读:商家定制版与官方版的区别,以及如何安全备份防变砖
R6900P/R7000P刷梅林固件完全指南:从风险规避到实战操作 在路由器玩家圈子里,刷第三方固件一直是提升设备性能的热门选择。特别是对于网件R6900P和R7000P这类中高端机型,梅林固件以其稳定性与丰富功能吸引了大量用户。但不同于官方固件的&quo…...
基于MCP协议构建大模型联网搜索工具:原理、实现与部署指南
1. 项目概述:一个连接大模型与真实世界的“搜索工具箱”如果你正在开发一个基于大模型(LLM)的应用,比如一个智能客服、一个文档分析助手,或者一个能帮你规划行程的AI伙伴,你可能会遇到一个核心痛点…...
