P1164 小A点菜

题目描述:

不过 uim 由于买了一些书,口袋里只剩 𝑀M 元 (𝑀≤10000)(M≤10000)。

餐馆虽低端,但是菜品种类不少,有 𝑁N 种 (𝑁≤100)(N≤100),第 𝑖i 种卖 𝑎𝑖ai​ 元 (𝑎𝑖≤1000)(ai​≤1000)。由于是很低端的餐馆,所以每种菜只有一份。

小 A 奉行“不把钱吃光不罢休”,所以他点单一定刚好把 uim 身上所有钱花完。他想知道有多少种点菜方法。

由于小 A 肚子太饿,所以最多只能等待 11 秒。

解题思路:

dp[i - 1][ j ]就代表了:选前i-1道菜,而且还正好花了j元钱,也代表了我们不买第i道菜所需要的方案数量

dp[i - 1][j - a[ i ]]:选前i-1道菜,而且还正好花了j-a[ i ]元钱。当我们买了前i道菜花了j元钱时,我们减去这第i道菜然后减去买第i道菜花的钱,得到的方案数是不变的,也就是说dp[i - 1][j - a[ i ]]就代表了买第i道菜的方案数量,这一思想在背包问题中也有所体现。

代码:

package lanqiao;import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int N = sc.nextInt(); //菜的种类int M = sc.nextInt(); //钱int[] a = new int[N + 1];int[][] dp = new int[M + 1][M + 1];for(int i = 1;i <= N;i ++){a[i] = sc.nextInt();}for(int i = 1;i <= N;i ++){for(int j = 1;j <= M;j ++){if(j == a[i]){dp[i][j] = dp[i - 1][j] + 1; //多加一个菜}if(j > a[i]){dp[i][j] = dp[i - 1][j] + dp[i - 1][j - a[i]]; //不买这道菜+买这道菜}if(j < a[i]){dp[i][j] = dp[i - 1][j]; //钱不够,未加菜}}}System.out.println(dp[N][M]);}
}

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

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

相关文章

情感聊天赛道用al制作一分钟一条视频无脑玩法日入500+

详情介绍 这个赛道是用al快速制作情感故事聊天 原理就是用爆款的文案 al生成情感聊天视频全网独家赛道不拥挤 这个赛道几乎没人做一片蓝海 视频号分成计划 抖音中视频都可以做 建议做视频号创作者分成计划 单价高事少 视频号的平均用户年龄都是比较大的 对于这种情感故事的…

【UE+MQTT】Mqtt Client插件使用记录

步骤 1. 在虚幻商城中下载“Mqtt Client”插件 插件地址&#xff1a;https://www.unrealengine.com/marketplace/zh-CN/product/34cbcaef7a664451a886dba37b4769bc?sessionInvalidatedtrue 文档地址&#xff1a;[虚幻引擎] DT Mqtt 插件详细说明 – DT 2. 在虚幻编辑器中确…

CSS 预处理器:stylus运用详解

文章目录 一、stylus简介Stylus 的主要特性引入 Stylus1. 安装 Stylus2. 配置 webpack3. 编写 Stylus 文件4. 在项目中引入 Stylus 文件 总结 二、stylus常见问题三、stylus运用案例四、stylus优缺点五、热门文章 一、stylus简介 Stylus 是一个强大的 CSS 预处理器&#xff0c…

菜鸡学习netty源码(四)—— EventLoopGroup

1.概述 我们前面进行过分析,channel为netty网络操作的抽象类,EventLoop负责处理注册到其上的Channel处理的I/O事件;EventLoopGroup是一个EventLoop的分组,它可以获取到一个或者多个的EventLoop对象。 2.类关系图 NioEventLoopGroup的类继承图,蓝色部分为对应的java类,绿…

正点原子imx6ull内核移植网络驱动修改无法出现两个网络端口

重点1&#xff1a;手册上让我们在&iomuxc_snvs节点中做点添加网络复位信息&#xff0c;我们这里不需要做&#xff0c;直接下一步。 这里与手册不同&#xff0c;这里直接像我这样将pinctrl_enet2和pinctrl_enet1中对最后两行做修改和添加。直接将复位引脚的配置加入这个节点…

TalkingGaussian:基于高斯溅射的结构保持3D说话人头合成

TalkingGaussian: Structure-Persistent 3D Talking Head Synthesis via Gaussian Splatting TalkingGaussian&#xff1a;基于高斯溅射的结构保持3D说话人头合成 Jiahe Abstract 摘要 TalkingGaussian: Structure-Persistent 3D Talking Head Synthes…

Paxos算法和ZooKeeper使用的Zab(ZooKeeper Atomic Broadcast)算法

Paxos算法和ZooKeeper使用的Zab&#xff08;ZooKeeper Atomic Broadcast&#xff09;算法都是分布式一致性算法&#xff0c;用于在分布式系统中达成一致性决策。尽管它们的目标相同&#xff0c;但在设计和实现上存在一些区别。 Paxos算法 设计目的&#xff1a;Paxos算法是一种…

基于树莓派的六足机器人方案设计+源代码+工程内容说明

文章目录 源代码下载地址项目介绍项目内容说明简单预览 项目备注源代码下载地址 源代码下载地址 点击这里下载源码 项目介绍 项目内容说明 hardware为项目相关硬件设计 机械结构为六足机器人的3d建模工程&#xff0c;包括本体和云台遥控器在ESP32最小开发板上集成了MPU605…

[C/C++] -- 适配器模式

适配器模式是一种结构型设计模式&#xff0c;它允许接口不兼容的类能够相互合作。这种模式允许将一个类的接口转换成另一个类的接口&#xff0c;从而使得原本由于接口不匹配而无法在一起工作的类能够协同工作。 适配器模式通常用于以下情况&#xff1a; 系统需要使用现有的类…

留学资讯 | 曼大突然官宣接受雅思单科重考!单科重考体验大揭秘!

雅思单科重考于昨日&#xff08;5月6日&#xff09;进行了大陆地区的首场考试&#xff0c;不少烤鸭都在观望状态&#xff0c;表示&#xff1a;虽然我很心动&#xff0c;但是学校们可不心动&#xff01;&#xff01; 别急&#xff01;好消息这不就来了&#xff01;曼大官网明确表…

PaddleOCR使用

最近在项目过程中需要用到文字识别的能力&#xff0c;之前没有接触过。需要对现有的开源能力进行调研和学习。 1. 基本概念 1.1 PaddlePaddle PaddlePaddle 是一个由百度开源&#xff0c;基于 Python 的深度学习框架。PaddlePaddle 针对不同的硬件环境提供了不同的安装包或安…

vue导出大量数据的表格方法

我目前的项目导出4万7数据没问题 先安装 npm install -S file-saver npm install xlsx0.16.0 -S npm install -D script-loader 我使用的版本是"file-saver": “^2.0.5”, “xlsx”: “^0.16.0” 新建Export2Excel.js //Export2Excel.js /* eslint-disable */ requ…

【docker问题记录】虚拟机ubuntu22.04使用docker-compose出现容器不能ping通宿主机所在局域网的情况

直接说结论 原因可能是因为这个版本的ubuntu启动后有时会丢失网络图标此时宿主机相当于没有联网&#xff0c;但是docker相关进程已经启动&#xff0c;使用的是无效的网络配置&#xff0c;哪怕此时再用sudo nmcli networking on启动了网络依然docker-compose容器依然无法联网&a…

stylus详解与引入

Stylus 是一个基于 Node.js 的 CSS 预处理器&#xff0c;它允许开发者以一种类似于脚本的方式编写 CSS 代码&#xff0c;从而创建出更加健壮、动态和富有表现力的样式表。Stylus 的特点包括&#xff1a; 1. 基于 JavaScript&#xff1a;由于 Node.js 是一个 JavaScript 运行环…

使用moveit控制机械臂

在这篇博客中&#xff0c;我们将详细探讨如何利用Python和Robot Operating System&#xff08;ROS&#xff09;配合MoveIt! 控制机械臂执行精确的抓取任务。机械臂技术在工业自动化、医疗服务以及研究领域扮演着越来越关键的角色。本文将通过介绍安装必要的软件、编写控制脚本以…

MP4视频转MOV电影视频格式的方法?汇帮视频格式转换器帮你实现一键转MOV

有关MOV视频格式的介绍&#xff1a; MOV视频是一种多媒体文件格式&#xff0c;它被广泛用于存储和播放音频和视频内容。这种文件格式由苹果公司开发&#xff0c;作为QuickTime播放器的一部分&#xff0c;用于在Mac OS操作系统上播放多媒体内容。MOV格式的文件通常包含视频、音…

2024年数维杯数学建模A题思路

文章目录 1 赛题思路2 比赛日期和时间3 竞赛信息4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间&#xff1a;2024…

vscode与git下载安装

粉丝不过W git下载地址: https://git-scm.com/downloads, 安装git时, 记住你安装Git的路径 vscode下载地址: https://code.visualstudio.com/ 下载完后, 并默认安装好, 你就可以进入配置git的环境变量了, 点击win, 点击设置 在搜索框里搜索, 高级系统设置 点到 高级 , 然后点击…

一文详解Spring与JDK注入

目录 一、Spring框架 二、JDK 三、什么是Spring的注入 四、如何实现Spring与JDK注入 一、Spring框架 Spring框架是一个开源的Java EE应用程序框架&#xff0c;它为企业级Java应用程序提供了全面的基础设施支持。Spring框架的核心特点包括依赖注入&#xff08;Dependency I…

注意力评分转化为概率分布

在注意力模型中&#xff0c;注意力评分通常表示了模型在处理信息时对不同部分的关注度。将这些评分转换为概率分布&#xff0c;可以帮助模型集中“注意力”在最相关的信息上&#xff0c;同时保留对其他信息的一定程度的敏感性。 在注意力模型中&#xff0c;注意力评分转换为概率…