鸣人的影分身(等级考试4级 2021-03 T3)
2024-09-08 05:07:17
题目:
此题题干又臭又长,直接看简化版。
鸣人的影分身(等级考试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;
}
最新文章
- Java 并发性和多线程
- CoreAnimation-01-CALayer核心要点及实例解析
- 深度学习笔记(三 )Constitutional Neural Networks
- oracle在敏感操作前创建还原点
- Mysql中的DQL查询语句
- uva11722 - Joining with Friend(几何概率)
- html5 textarea 文本框根据输入内容自适应高度
- angular基础
- python使用mongodb
- CSS3 3D环境实现立体 魔方效果代码
- Shell脚本之反引号【``】和 $()
- date clock
- 数据重组:对一堆相似字典进行分类统计(shidebin)
- Qt: 加入打印支持
- 【Struts2】Struts2获取session的三种方式
- 【github】添加 ssh 秘钥
- ZEDGRAPH画图心得,SQL语句构造!!!
- Vue 进阶教程之:详解 v-model
- Linux系统——FTP
- mac上调整phpstorm和webstorm的使用内存(默认是128m-750m) 避免卡顿