OpenJudge | 放苹果

总时间限制: 1000ms 内存限制: 65536kB

描述

把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。

输入

第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。

输出

对输入的每组数据M和N,用一行输出相应的K。

样例输入

1
7 3

样例输出

8

来源

lwx@POJ

思路

定义了一个递归函数。这个函数接受三个参数:mstartn。它的目标是计算有多少种方式可以将 m 分解为 n 个非负整数的和,其中每个整数都不小于 start

如果 nm 都是 0,那么函数返回 1,因为只有一种方式可以将 0 分解为 0 个数的和,那就是不选择任何数。如果 n0m 不是 0,那么函数返回 0,因为没有办法将一个非零数分解为 0 个数的和。

如果 nm 都不是 0,那么函数进入一个循环,从 start 遍历到 m 的所有整数 i。对于每个 i,函数调用自身,将 m-iin-1 作为参数。这是因为,如果我们选择了 i,那么我们需要找出有多少种方式可以将 m-i 分解为 n-1 个非负整数的和,而这些整数都不小于 i。函数将每次递归调用的结果累加到 sum 中。

最后,函数返回 sum,即所有可能的分解方式的数量。

由上图可知,在每次的递归中,只要将start设为i,就可以保证不会出现重复的情况。

Code

C++

#include <bits/stdc++.h>
using namespace std;int fun(int m, int start, int n) {int sum = 0;if(n == 0 && m == 0) return 1;else if(n == 0 && m != 0) return 0;for(int i = start; i <= m; i++) sum += fun(m-i, i, n-1);	return sum;
}int main() {int t, m, n;cin >> t;for(int i = 1; i <= t; i++) {cin >> m >> n;cout << fun(m, 0, n) << endl;}
}

测试用例

样例1

输入
1
7 3
输出
8

样例2

输入
1
2 2
输出
2

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

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

相关文章

里程计在激光雷达slam中的作用

在tf树中的父坐标系和子坐标系中间的odom 机器人在平直走廊中由于缺少参照物的变化&#xff0c;无法估计自己的位移&#xff1b;可以通过轮子转动的圈数和一 圈的位移来计算距离&#xff0c;这种通过电机转速计算机器人位移的方法就是常用的电机里程计&#xff1b;里程计不 是…

jdk8——lambda表达式

在 Java 8 中引入了 Lambda 表达式&#xff0c;使得代码更加简洁和易读。Lambda 表达式是一种匿名函数&#xff0c;可以作为参数传递给方法或者存储在变量中。它主要用于简化函数式编程。 Lambda 表达式只能用于实现函数式接口。函数式接口是只包含一个抽象方法的接口&#xf…

简单高效的在线拾色器工具 - 为您的设计工作提供便利

你是否曾在寻找完美颜色时感到困扰&#xff1f;现在&#xff0c;有了这个简单而强大的在线拾色器工具&#xff0c;选择理想的颜色变得轻而易举&#xff01; 网址&#xff1a; https://potatoh5games.fun/tools/#ColorPickr 这款拾色器工具具有以下特点&#xff1a; 用户友好…

golang 文件

golang 文件 概念 文件是计算机系统中用于存储和管理的 数据集合&#xff0c;具有唯一的名称&#xff0c;存在于存储介质上&#xff0c;包含创建、修改等属性&#xff0c;通过文件系统进行组织&#xff0c;用户可进行读取、写入等操作 文件流 文件输入流&#xff08;InputS…

kafka 各种选举过程

一、kafka 消费者组协调器 如何选举 Kafka 中的消费者组协调器&#xff08;Group Coordinator&#xff09;是通过以下步骤选举的&#xff1a; 分区映射&#xff1a; Kafka 使用一个特殊的内部主题 __consumer_offsets 来存储消费者组的元数据。该主题有多个分区&#xff0c;每…

Linux进程控制——进程等待

文章目录 进程等待进程等待的必要性进程等待的方法status参数option参数 进程等待 进程等待的过程其实是父进程等待子进程死亡的过程 进程等待的必要性 如果子进程退出&#xff0c;父进程不进行处理&#xff0c;子进程会变成僵尸进程&#xff0c;有内存泄漏的风险 僵尸进程…

Adobe Acrobat Pro DC for Mac:PDF处理软件

Adobe Acrobat Pro DC for Mac是一款专为Mac用户设计的PDF处理软件&#xff0c;它凭借出色的功能和卓越的性能&#xff0c;成为了处理PDF文件的理想选择。 首先&#xff0c;Acrobat Pro DC for Mac支持全方位的PDF编辑。用户可以对PDF文档进行文本编辑、图像处理、表格制作等操…

Paddlenlp测试

1、环境安装 使用华为云euleros操作系统&#xff0c;python版本3.9.5&#xff0c;CPU无GPU服务器&#xff1a; &#xff08;1&#xff09;pip3 install setuptools_scm -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com &#xff08;2&#xf…

机器学习算法与Python实战 | 两行代码即可应用 40 个机器学习模型--lazypredict 库!

本文来源公众号“机器学习算法与Python实战”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;两行代码即可应用 40 个机器学习模型 今天和大家一起学习使用 lazypredict 库&#xff0c;我们可以用一行代码在我们的数据集上实现许多…

Python 潮流周刊#62:试用自由线程 Python(摘要)

本周刊由 Python猫 出品&#xff0c;精心筛选国内外的 250 信息源&#xff0c;为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景&#xff1a;帮助所有读者精进 Python 技术&#xff0c;并增长职业和副业的收入。 分享了 12 篇文章&…

SQL Server数据库升级与迁移:平稳过渡的艺术

SQL Server数据库升级与迁移&#xff1a;平稳过渡的艺术 在数据库的生命周期中&#xff0c;升级和迁移是不可避免的操作。无论是升级到SQL Server的新版本&#xff0c;还是迁移到新的服务器或云环境&#xff0c;都需要谨慎处理以确保数据的完整性和业务的连续性。本文将详细介…

常见的NLP处理框架介绍!

自然语言处理&#xff08;NLP&#xff09;处理框架是指一系列用于开发、实现和部署自然语言处理应用程序的工具、库和框架。以下是一些主要的NLP处理框架的介绍&#xff1a; 一、NLTK&#xff08;Natural Language Toolkit&#xff09; 概述&#xff1a;NLTK是Python编程语言中…

雪花算法及MP实现方式

根据当前项目推进的情况&#xff0c;我们会发现用户注册时&#xff0c;从来没有考虑主键生成的问题。为什么呢&#xff1f;因为咱们的数据表现在都是通过数据库自增长方式获取主键id的。不过&#xff0c;这个主键自增长的方案好不好呢&#xff1f;我们一起来了解一下程序发展的…

SNP过滤

SNP过滤 文章目录 SNP过滤前言一. 利用Perl脚本get_vcf_stats.pl统计位点信息二. 利用R脚本149toTZC.2allele.filtered.R画图并获得过滤后的位点位置信息三. 用vcftools保留过滤后的位点四、get_vcf_stats.pl 脚本存放处 总结 SNP过滤 所属目录&#xff1a;紫菜创建时间&#…

APT UPDATE提示i386找不到错误的处理方法。

最近在ubuntu 22.04使用apt-mirror制作本地镜像源后&#xff0c;使用apt update提示,i386文件找不到。在很多网上提示&#xff0c;使用dpkg --remove-architecture i386&#xff0c;关闭i386来跳过这个错误&#xff0c;但是实际上&#xff0c;会遇到无法关闭的情况&#xff0c;…

如何查找下载安装安卓APK历史版本?

在安卓设备上&#xff0c;有时候我们可能希望安装某个软件的旧版本&#xff0c;可能是因为新版本不兼容、功能改变不符合需求或是其他原因。 安卓系统并不像iOS那样提供直观的历史版本下载界面。 不过&#xff0c;通过一些第三方市场和网站&#xff0c;我们仍然可以找到并安装…

docker环境下的verdaccio设置权限并配置域名.md

权限配置 一个管理员叫admin,可以读也可以发布一个普通用户叫qiuye,只可以读,不可以发布添加账号就自行创建添加即可,只需要更改config文件的配置项即可 packages:*/*: access: admin qiuyepublish: admin unpublish: admin **:access: admin qiuyepublish: admin unpublish…

Linux——CPU占不上去的解决办法

一、将调节器升至performance&#xff1a; 1.1 查看当前的调节器&#xff1a; cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor如果不是 performance &#xff0c;则进入root账户 1.2 进入root账户 先进入管理员账户输入命令&#xff1a; su root如果没有roo…

Web安全:Web体系架构存在的安全问题和解决方室

Web体系架构在提供丰富功能和高效服务的同时&#xff0c;也面临着诸多安全问题。这些问题可能涉及数据泄露、服务中断、系统被控制等多个方面&#xff0c;对企业和个人造成不可估量的损失。以下是对Web体系架构中存在的安全问题及解决方案的详细分析&#xff1a; Web体系架构存…

【小程序爬虫入门实战】使用Python爬取易题库

文章目录 1. 写在前面2. 抓包分析 【&#x1f3e0;作者主页】&#xff1a;吴秋霖 【&#x1f4bc;作者介绍】&#xff1a;擅长爬虫与JS加密逆向分析&#xff01;Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python与爬虫领域研…