题目:

此题题干又臭又长,直接看简化版。

鸣人的影分身(等级考试4级 2021-03 T3)等效于 把m个苹果分到n个盘子中,问有几种可能?

dp[i][j]表示有i个盘子j个苹果时有多少种放法。

用递归的方法来计算dp[n][m]。

一、递归函数的出口

    (1)盘子数量不断减少所以当n==1时return 1;

    (2)苹果数量不断减少所以当m==0时retrun 1;

 

二、函数主体

  n > m

    这个好办,此时至少有m - n 个盘子空着那么相当于把m个苹果放入m个盘子。——return dp[n][m]=dp[m][m];

  n <= m

    这个稍微复杂一些需要分类讨论

      (一).   至少有一个盘子是空的

          等于把m个苹果放入n - 1 个盘子中及其迭代。——return dp[n-1][m]

      (二).   当每个盘子都有时就是return dp[n][m-n]

综上两种情况(一)(二)return dp[n][m]=dp[n][m-n]+dp[n-1][m];

照着上面思路即可写出 ......

 代码君‍:

#include<bits/stdc++.h>
using namespace std;
int f(int n,int m)
{
if(n==1||m==0) return 1;
if(n>m)
{
return f(m,m);
}
else
{
return f(n,m-n)+f(n-1,m);
}
}
int main()
{
int k;
cin>>k;
for(int i=1;i<=k;i++)
{
int a,b;
scanf("%d%d",&a,&b);
cout<<f(b,a)<<endl;
}
return 0;
}

最新文章

  1. Java 并发性和多线程
  2. CoreAnimation-01-CALayer核心要点及实例解析
  3. 深度学习笔记(三 )Constitutional Neural Networks
  4. oracle在敏感操作前创建还原点
  5. Mysql中的DQL查询语句
  6. uva11722 - Joining with Friend(几何概率)
  7. html5 textarea 文本框根据输入内容自适应高度
  8. angular基础
  9. python使用mongodb
  10. CSS3 3D环境实现立体 魔方效果代码
  11. Shell脚本之反引号【``】和 $()
  12. date clock
  13. 数据重组:对一堆相似字典进行分类统计(shidebin)
  14. Qt: 加入打印支持
  15. 【Struts2】Struts2获取session的三种方式
  16. 【github】添加 ssh 秘钥
  17. ZEDGRAPH画图心得,SQL语句构造!!!
  18. Vue 进阶教程之:详解 v-model
  19. Linux系统——FTP
  20. mac上调整phpstorm和webstorm的使用内存(默认是128m-750m) 避免卡顿

热门文章

  1. 一次SpringBoot版本升级,引发的血案
  2. 2022-11-09 Acwing每日一题
  3. java基础篇—基础语法
  4. mindxdl---common--test_tools.go
  5. Go语言核心36讲32
  6. ArcObjects SDK开发 006 ICommand和ITool接口
  7. 同时容器,k8s和docker区别是什么? 如何简单理解k8s和docker
  8. MYSQL-INNODB索引构成详解
  9. a标签跳新链接,如果链接为空则不跳转
  10. uniapp安装和使用