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

华为OD机考题(HJ61 放苹果)

前言

经过前期的数据结构和算法学习,开始以OD机考题作为练习题,继续加强下熟练程度。

描述

把m个同样的苹果放在n个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?

注意:如果有7个苹果和3个盘子,(5,1,1)和(1,5,1)被视为是同一种分法。

数据范围:0≤𝑚≤10 0≤m≤10 ,1≤𝑛≤10 1≤n≤10 。

输入描述:

输入两个int整数

输出描述:

输出结果,int型

示例1

输入:

7 3

输出:

8

实现原理与步骤

我们需要计算有多少种不同的方式把m个苹果放到n个盘子里。以下是问题的递归公式:

  • 如果没有苹果(m == 0),只有一种放法,就是不放。
  • 如果只有一个盘子(n == 1),只有一种放法,就是把所有苹果放到这个盘子里。
  • 如果盘子数多于苹果数(n > m),可以等同于n = m的情况,因为多余的盘子可以为空。
  • 否则,分为两种情况:放至少一个苹果到每个盘子,或者不放苹果到第n个盘子。

递归公式:

实现代码(递归)

public class Main {public static void main(String[] args) {int m = 7; // 苹果数int n = 3; // 盘子数System.out.println("Total ways to place apples: " + placeApples(m, n));}public static int placeApples(int m, int n) {// 如果苹果数为0,只有一种放置方法,不放苹果if (m == 0) {return 1;}// 如果只有一个盘子,只有一种放置方法,把所有苹果放到这个盘子里if (n == 1) {return 1;}// 如果盘子数大于苹果数,相当于盘子数等于苹果数if (n > m) {return placeApples(m, m);}// 否则,递归计算放苹果的方法数return placeApples(m, n - 1) + placeApples(m - n, n);}
}

实现代码(动态规划)

public class Main {public static void main(String[] args) {int m = 7; // 苹果数int n = 3; // 盘子数System.out.println("Total ways to place apples: " + placeApplesDP(m, n));}public static int placeApplesDP(int m, int n) {int[][] dp = new int[m + 1][n + 1];for (int i = 0; i <= m; i++) {dp[i][1] = 1; // 只有一个盘子的情况}for (int j = 0; j <= n; j++) {dp[0][j] = 1; // 没有苹果的情况}for (int i = 1; i <= m; i++) {for (int j = 2; j <= n; j++) {if (j > i) {dp[i][j] = dp[i][i];} else {dp[i][j] = dp[i][j - 1] + dp[i - j][j];}}}return dp[m][n];}
}

相关文章:

华为OD机考题(HJ61 放苹果)

前言 经过前期的数据结构和算法学习&#xff0c;开始以OD机考题作为练习题&#xff0c;继续加强下熟练程度。 描述 把m个同样的苹果放在n个同样的盘子里&#xff0c;允许有的盘子空着不放&#xff0c;问共有多少种不同的分法&#xff1f; 注意&#xff1a;如果有7个苹果和3…...

浅谈Visual Studio 2022

Visual Studio 2022&#xff08;VS2022&#xff09;提供了众多强大的功能和改进&#xff0c;旨在提高开发者的效率和体验。以下是一些关键功能的概述&#xff1a;12 64位支持&#xff1a;VS2022的64位版本不再受内存限制困扰&#xff0c;主devenv.exe进程不再局限于4GB&#xf…...

spark 动态资源分配dynamicAllocation

动态资源分配&#xff0c;主要是spark在运行中可以相对合理的分配资源。 初始申请的资源远超实际需要&#xff0c;减少executor初始申请的资源比实际需要少很多&#xff0c;增多executorSpark运行多个job&#xff0c;这些job所需资源有的多有的少&#xff0c;动态调整executor…...

【C语言ffmpeg】打开第一个视频

文章目录 前言须知ffmpeg打开文件基本流程图ffmpeg打开媒体文件AVFormatContext *avformat_alloc_context(void);AVFormatContext 成员变量及其作用AVInputFormat *iformatAVOutputFormat *oformatvoid *priv_dataAVIOContext *pbunsigned int nb_streamsAVStream **streamscha…...

【Langchain大语言模型开发教程】模型、提示和解析

&#x1f517; LangChain for LLM Application Development - DeepLearning.AI 学习目标 1、使用Langchain实例化一个LLM的接口 2、 使用Langchain的模板功能&#xff0c;将需要改动的部分抽象成变量&#xff0c;在具体的情况下替换成需要的内容&#xff0c;来达到模板复用效…...

Flutter 中的基本数据类型:num、int 和 double

在 Dart 编程语言中&#xff0c;数值类型的基础是 num&#xff0c;而 int 和 double 则是 num 的子类型。在开发 Flutter 应用时&#xff0c;理解这三者的区别和使用场景是非常重要的。本文将详细介绍 num、int 和 double 的定义及其使用区别。 num num 是 Dart 中的数值类型…...

基于Python+Django,开发的一个在线教育系统

一、项目简介 使用Python的web框架Django进行开发的一个在线教育系统&#xff01; 二、所需要的环境与组件 Python3.6 Django1.11.7 Pymysql Mysql pure_pagination DjangoUeditor captcha xadmin crispy_forms 三、安装 1. 下载项目后进入项目目录cd Online-educ…...

密码学原理精解【9】

这里写目录标题 迭代密码概述SPN具体算法过程SPN算法基本步骤举例说明注意 轮换-置换网络一、定义与概述二、核心组件三、加密过程四、应用实例五、总结 轮函数理论定义与作用特点与性质应用实例总结 迭代密码理论定义与原理特点与优势应用场景示例发展趋势 AES特点概述一、算法…...

【Nacos】Nacos服务注册与发现 心跳检测机制源码解析

在前两篇文章&#xff0c;介绍了springboot的自动配置原理&#xff0c;而nacos的服务注册就依赖自动配置原理。 Nacos Nacos核心功能点 服务注册 :Nacos Client会通过发送REST请求的方式向Nacos Server注册自己的服务&#xff0c;提供自身的元数据&#xff0c;比如ip地址、端…...

python 66 个冷知识 0720

66个有趣的Python冷知识 一行反转列表 使用切片一行反转列表&#xff1a;reversed_list my_list[::-1] 统计文件单词数量 使用 collections.Counter 统计文件中每个单词的数量&#xff1a;from collections import Counter; with open(file.txt) as f: word_count Counter(f…...

利用PyTorch进行模型量化

利用PyTorch进行模型量化 目录 利用PyTorch进行模型量化 一、模型量化概述 1.为什么需要模型量化&#xff1f; 2.模型量化的挑战 二、使用PyTorch进行模型量化 1.PyTorch的量化优势 2.准备工作 3.选择要量化的模型 4.量化前的准备工作 三、PyTorch的量化工具包 1.介…...

Android 小白菜鸟从入门到精通教程

前言 Android一词最早出现于法国作家利尔亚当&#xff08;Auguste Villiers de l’Isle-Adam&#xff09;在1886年发表的科幻小说《未来的夏娃》&#xff08;L’ve future&#xff09;中。他将外表像人的机器起名为Android。从初学者的角度出发&#xff0c;通过通俗易懂的语言…...

php相关

php相关 ​ 借鉴了小迪安全以及各位大佬的博客&#xff0c;如果一切顺利&#xff0c;会不定期更新。 如果感觉不妥&#xff0c;可以私信删除。 默认有php基础。 文章目录 php相关1. php 缺陷函数1. 与2. MD53. intval()4. preg_match() 2. php特性1. php字符串解析特性2. 杂…...

uniapp上传功能用uni-file-picker实现

文章目录 html代码功能实现css样式代码 html代码 <uni-file-pickerselect"onFileSelected"cancel"onFilePickerCancel"limit"1"class"weightPage-upload-but"file-mediatype"image"></uni-file-picker><imag…...

【PPT笔记】1-3节 | 默认设置/快捷键/合并形状

文章目录 说明笔记1 默认设置1.1 OFFICE版本选择1.1.1 Office某某数字专属系列1.1.2 Office3651.1.3 产品信息怎么看 1.2 默认设置1.2.1 暗夜模式1.2.2 无限撤回1.2.3 自动保存&#xff08;Office2013版本及以上&#xff09;1.2.4 图片压缩1.2.5 字体嵌入1.2.6 多格式导出1.2.7…...

Qt中的高分辨率及缩放处理

写在前面 使用Qt开发界面客户端&#xff0c;需要考虑不同分辨率及缩放对UI界面的影响&#xff0c;否则会影响整体的交互使用。 问题 高分辨率/缩放设备上图片/图标模糊 若不考虑高分辨及缩放处理&#xff0c;在高分辨率/缩放设备上&#xff0c;软件中的图片、图标可能会出现…...

电机泵盖机器人打磨去毛刺,选德国进口高精度主轴

机器人打磨去毛刺该如何选择主轴呢&#xff1f;首先我们需要考虑的是工件的材质&#xff0c;电机泵盖通常使用铸铁、不锈钢、合金钢等金属材质&#xff0c;因此这类保持的硬度较高&#xff0c;一般会选择功率、扭矩较大的德国进口高精度主轴Kasite 4060 ER-S。 Kasite 4060 ER-…...

Android init.rc各阶段的定义和功能

Android开机优化系列文档-CSDN博客 Android 14 开机时间优化措施汇总-CSDN博客Android 14 开机时间优化措施-CSDN博客根据systrace报告优化系统时需要关注的指标和优化策略-CSDN博客Android系统上常见的性能优化工具-CSDN博客Android上如何使用perfetto分析systrace-CSDN博客A…...

.net dataexcel 脚本公式 函数源码

示例如: ScriptExec(""sum(1, 2, 3, 4)"") 结果等于10 using Feng.Excel.Builder; using Feng.Excel.Collections; using Feng.Excel.Interfaces; using Feng.Script.CBEexpress; using Feng.Script.Method; using System; using System.Collections.Gen…...

HarmonyOS ArkUi @CustomDialog 和promptAction.openCustomDialog踩坑以及如何选择

CustomDialog 内使用Link&#xff0c;如何正常使用 错误使用方式&#xff1a; 定义一个函数&#xff0c;在函数内使用弹窗&#xff0c;如下面代码showDialog&#xff1a; 这种使用方式&#xff0c;无法在自定义的CustomDialog内使用 Link&#xff0c;进行父子双向绑定&#x…...

1.8.2 掌握Scala类与对象 - 单例对象与伴生对象

本次实战通过三个案例深入解析了 Scala 中 object 的核心机制&#xff0c;展示了其如何替代 Java 的 static 关键字。首先&#xff0c;通过 MathUtils 定义了存放常量与工具方法的独立单例对象&#xff1b;其次&#xff0c;利用 Person 类与其同名对象演示了“伴生对象”特性&a…...

机器学习知识产权保护:从数据到模型的立体防御策略

1. 机器学习投资保护的核心挑战与思路 在上一篇文章中&#xff0c;我们探讨了机器学习&#xff08;ML&#xff09;项目从构思到部署过程中&#xff0c;知识产权&#xff08;IP&#xff09;保护的基本框架和初步策略。今天&#xff0c;我们深入到更具体、也更棘手的层面&#xf…...

Shoelace主题定制终极指南:掌握CSS变量覆盖与扩展技巧的10个秘诀

Shoelace主题定制终极指南&#xff1a;掌握CSS变量覆盖与扩展技巧的10个秘诀 【免费下载链接】shoelace Shoelace is now Web Awesome. Come see what’s new! 项目地址: https://gitcode.com/gh_mirrors/sh/shoelace Shoelace是一个功能强大的Web组件库&#xff0c;现已…...

2025届毕业生推荐的六大AI学术助手解析与推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 于内容创作进程里&#xff0c;要减低AI生成文本的可检测比率&#xff0c;得从语义、结构以及…...

从夏普IGZO技术授权看显示面板产业的技术转移与战略博弈

1. 从一则旧闻看显示产业的全球棋局&#xff1a;技术、资本与生存的博弈2013年夏天&#xff0c;一则来自日本的消息在科技产业圈&#xff0c;特别是显示面板和半导体供应链领域&#xff0c;激起了不小的涟漪。全球知名的消费电子品牌夏普公司&#xff0c;宣布了一项与中国国有企…...

学习如何用CC-Switch + Claude Code 接入 DeepSeek-V4-Pro

1.概述 1.1.关键词 Claude Code&#xff1a;Anthropic 出品的 AI 编程命令行工具。在终端里让 AI 帮你写代码、改 Bug、分析项目。 CC-Switch&#xff1a;开源的图形化配置管理工具。一键切换 Claude Code 背后使用的模型&#xff0c;不用手动改配置文件。 1.2.目的 使用C…...

PHP WebSocket隧道实现SOCKS5代理:在受限主机环境下的网络出口方案

1. 项目概述&#xff1a;一个在特定托管环境下的轻量级SOCKS5代理方案最近在折腾一些需要稳定网络环境的小项目&#xff0c;尤其是在一些资源受限的海外托管平台上&#xff0c;直接访问某些服务或进行数据抓取时&#xff0c;经常会遇到IP限制或连接不稳定的问题。这时候&#x…...

人工智能-现代方法(一)

2026.05.12 这几天开始看《人工智能-现代方法》&#xff0c;做一些知识记录。 1、学习的概念&#xff1a;归纳和演绎。&#xff08;19章&#xff09; 演绎靠逻辑推理&#xff0c;归纳靠经验总结。所以在前提正确的情况下&#xff0c;演绎的结论必然正确。归纳的结论则有可能出现…...

告别公网IP焦虑:用SakuraFrp免费隧道,5分钟搞定Linux服务器的SSH远程访问

5分钟实现无公网IP的Linux服务器远程访问&#xff1a;SakuraFrp实战指南 当你需要在外紧急处理家中或办公室的Linux服务器时&#xff0c;却发现没有公网IP无法远程连接&#xff0c;这种焦虑我深有体会。去年深夜的一次线上故障让我深刻认识到内网穿透工具的重要性——当时我正…...

不止于透传:用VirtIO-GPU为你的KVM虚拟机开启3D加速(附XML配置详解)

VirtIO-GPU虚拟化加速实战&#xff1a;从原理到配置的深度解析 在虚拟化技术日益成熟的今天&#xff0c;GPU加速已成为开发测试、图形工作站和云桌面等场景的刚需。传统GPU透传方案虽然性能接近原生&#xff0c;但受限于硬件数量且缺乏灵活性。VirtIO-GPU结合virglrenderer的软…...