每日一题(洛谷2386):盘子里放苹果-dfs

题目描述

把 m 个同样的苹果放在 n 个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法。(5,1,15,1,1 和 1,1,51,1,5 是同一种方法)

输入格式

第一行是测试数据的数目 t,以下每行均包括二个整数 m 和 n,以空格分开。

输出格式

对输入的每组数据 m 和 n,用一行输出相应的结果。

#include<iostream>
using namespace std;
int dfs(int a, int b)
{if (a == 1 || a == 0 || b == 1){return 1;}else if (a < b){return dfs(a, a);}else if (a >= b){return dfs(a - b, b) + dfs(a, b - 1);}
}
int main()
{int num;int a, b;int sum[1000];int count = 0;cin >> num;while (num--){cin >> a >> b;int res=dfs(a, b);sum[count] = res;count++;}for (int i = 0; i < count; i++){cout << sum[i] << endl;}return 0;
}

对输入的a,b  分为三种情况考虑:

1 苹果数为1 或者 0  盘子数为1(盘子数不会为0,因为到1就返回了,但是苹果会) 返回 1

2苹果小于盘子数量  用苹果个数的盘子考虑即可

3苹果个数大于等于盘子个数,分两种情况考虑:放满盘子和不放满盘子,这样就包含了所有情况

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

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

相关文章

通过Caliper进行压力测试程序,且汇总压力测试问题解决

环境要求 第一步. 配置基本环境 部署Caliper的计算机需要有外网权限;操作系统版本需要满足以下要求:Ubuntu >= 16.04、CentOS >= 7或MacOS >= 10.14;部署Caliper的计算机需要安装有以下软件:python 2.7、make、g++(gcc-c++)、gcc及git。第二步. 安装NodeJS # …

高效 CUDA 调试:将 NVIDIA Compute Sanitizer 与 NVIDIA 工具扩展结合使用并创建自定义工具

高效 CUDA 调试&#xff1a;将 NVIDIA Compute Sanitizer 与 NVIDIA 工具扩展结合使用并创建自定义工具 NVIDIA Compute Sanitizer 是一款功能强大的工具&#xff0c;可以节省您的时间和精力&#xff0c;同时提高 CUDA 应用程序的可靠性和性能。 在 CUDA 环境中调试代码既具有挑…

JavaSE函数

函数 / 方法&#xff1a;是一个解决特定问题的代码块&#xff0c;该代码块可以被反复使用 1、定义函数 语法格式&#xff1a; 访问修饰符 方法返回值类型 方法名称([参数列表]) [抛出异常] {方法体;[return 返回值;] } 访问修饰符&#xff1a; public 这是公共&#xff0c;…

Android中的本地广播与全局广播

文章目录 1. 概念介绍2. 本地广播3. 全局广播 1. 概念介绍 前文我们介绍了Android中的广播&#xff0c;按注册方式分为静态广播和动态广播&#xff1b;按接收顺序分为有序广播与无序广播 本文我们按照广播的传播范围&#xff0c;将广播分为本地广播和全局广播 本地广播&#x…

算法——排序

快速排序&#xff1a; http://t.csdnimg.cn/iGs34 void QuickSort(int array[], int low, int high) {int i low; int j high;if(i > j) {return;}int temp array[low];while(i ! j) {while(array[j] > temp && i < j) {j--;}while(array[i] < temp &…

算法设计-杨辉三角

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 杨辉三角形又称Pascal三角形&#xff0c;它的第i1行是(ab)i的展开式的系数。 它的一个重要性质是&#xff1a;三角形中的每个数字等于它两肩上的数字相加。 下面给出了杨辉三角形的…

超详细的fiddler教程

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号【互联网杂货铺】&#xff0c;回复 1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 Fiddler&#xff08;中文名称&#xff1a;小提琴&#xff09;是…

sparksql的shuffle分区数设置

SparkSQL的shuffle默认分区数设置 在SparkSQL中当Job中产生Shuffle时&#xff0c;默认的分区数(spark.sql.shuffle.partitions)为200,在实际项目中要合理的设置&#xff0c;特别是本地场景&#xff0c;一般支持不了200个分区。 可以设置在&#xff1a; 配置文件&#xff1a;c…

【算法题】三道题理解算法思想--滑动窗口篇

滑动窗口 本篇文章中会带大家从零基础到学会利用滑动窗口的思想解决算法题&#xff0c;我从力扣上筛选了三道题&#xff0c;难度由浅到深&#xff0c;会附上题目链接以及算法原理和解题代码&#xff0c;希望大家能坚持看完&#xff0c;绝对能有收获&#xff0c;大家有更好的思…

win11 安装SIBR 3dgs

1.安装显卡驱动 下载地址&#xff1a; 官方驱动 | NVIDIA下载适用于 GeForce、TITAN、NVIDIA RTX、数据中心、GRID 等 NVIDIA 产品的新驱动。https://www.nvidia.cn/Download/index.aspx?langcn 2.安装cuda 下载地址&#xff1a;如果无法打开&#xff0c;切换.com为.cn&am…

对java元空间的理解

Java 8 引入了元空间&#xff08;Metaspace&#xff09;&#xff0c;取代了之前的永久代&#xff08;Permanent Generation&#xff09;。以下是我对 Java 元空间的理解&#xff1a; 存储类元数据&#xff1a;元空间用于存储类的元数据信息&#xff0c;如类名、方法信息、字段信…

LeetCode6. Z 字形变换(Java)

将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时&#xff0c;排列如下&#xff1a; P A H N A P L S I I G Y I R 之后&#xff0c;你的输出需要从左往右…

JavaScript基础练习题之计算数组元素的和与平均值

一、如何使用JavaScript计算数组元素的和与平均值&#xff1f; 二、正确的源程序 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>计算数组元素的和与平均值</title></head><body><h1>计算数组元…

两直线交点算法 C

求两直线交点算法 有中间交点 CD在AB异侧 且AB在CD异侧 AB在CD异侧 但 CD在AB同侧 无中间交点 A B A C A B A D \nobreak AB \times AC \newline AB \times AD ABACABAD 异号 叉乘后相乘小于零 等于零的几种情况 A B C与AB共线 D与AB共线 求交点&#xff0c;可由面积比…

iOS - LLVM的中间代码(IR)

文章目录 iOS - LLVM的中间代码&#xff08;IR&#xff09;1. 转为汇编代码2. 中间代码&#xff08;IR&#xff09;2.1 Objective-C在变为机器代码之前&#xff0c;会被LLVM编译器转换为中间代码&#xff08;Intermediate Representation&#xff09;2.2 可以使用以下命令行指令…

Spring Cloud的原理涉及多个组件和概念

核心部分的详细解释 服务注册与发现&#xff1a;这是Spring Cloud的核心功能之一。通过使用Eureka、Consul或Zookeeper等服务注册中心&#xff0c;服务提供者将自己的信息注册到注册中心&#xff0c;服务消费者通过注册中心查询可用的服务列表。服务消费者在需要调用其他服务时…

排序算法 - 堆排序

文章目录 目录 文章目录 前言 1 . 堆排序原理 2 . 堆排序实现 总结 前言 大家好,今天给大家介绍一下常见排序算法中的堆排序(填坑) 1 . 堆排序原理 堆排序是一种基于二叉堆数据结构的排序算法&#xff0c;它利用堆的性质进行排序。堆是一种完全二叉树&#xff0c;分为最…

如何为nginx配置环境变量-linux(-bash: nginx: 未找到命令)

我在安装nginx后&#xff0c;输入nginx 始终提示:"-bash: nginx: 未找到命令" 只能使用&#xff1a;“ /usr/local/nginx/sbin/nginx ” 此文是对执行 nginx -s reload 命令 提示未找到的解决方案&#xff01; 避免浪费时间&#xff01;&#xff01;&#x…

武忠祥《660题》高效刷题包+资料分享

660题的难度书虽然比较难&#xff0c;对于基础的考察比较深入&#xff0c;所以&#xff0c;有没有一种可能&#xff0c;做题太慢&#xff0c;是因为基础不好导致的&#xff01; 所以再继续做下去&#xff0c;就没有什么意义了&#xff0c;因为这就像是用一把钝刀去砍树&#x…

网络安全渗透测试工具

网络安全渗透测试常用的开发工具包括但不限于以下几种&#xff1a; Nmap&#xff1a;一款网络扫描工具&#xff0c;用于探测目标主机的开放端口和正在运行的服务&#xff0c;是网络发现和攻击界面测绘的首选工具。Wireshark&#xff1a;一个流量分析工具&#xff0c;用于监测网…