POJ1664 放苹果
2024-09-08 14:24:21
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int T,n,m;
int solve(int m,int n){//m个苹果 n个盘子
if(m<=1||n<=1) return 1;//边界条件
if(m<n) return solve(m,m);//苹果比盘子少 等价于把m个苹果放入m个盘子的方案数
else return solve(m,n-1)+solve(m-n,n);
/*否则 等于有一个盘子空着不放的方案(有空盘) +
把所有盘子都铺上一层苹果后用剩下的苹果放盘子的方案(没有空盘)*/
}
int main(){
scanf("%d",&T);
while(T--){
scanf("%d%d",&m,&n);
printf("%d\n",solve(m,n));
}
return 0;
}
最新文章
- 什么情况下才要重写Objective-C中的description方法
- (二十一)WebGIS中鹰眼的实现思路
- C语言学习005:不能修改的字符串
- myfocus焦点库的引用
- HTTP协议状态码详解(HTTP Status Code)
- Firefox Security Toolkit 安装
- [Tommas] SQL 中 WITH AS 的用法
- (poj) 1751 Highways
- 洛谷1439 排列LCS问题
- alert()显示中文出现乱码
- Memcached统计命令
- 漏洞经验分享丨Java审计之XXE(下)
- Mysql 5.7优化
- PHP企业微信配置点击事件。
- Mac 下查看网络端口占用情况
- 构建一个基于UIView的类别
- 2018-2019-2 网络对抗技术 20165202 Exp5 MSF基础应用
- keepalive配置与管理
- C++智能指针shared_ptr
- java io简单使用