poj1664放苹果(递归)
题目链接:http://poj.org/problem?id=1664
| Time Limit: 1000MS | Memory Limit: 10000K | |
| Total Submissions: 37273 | Accepted: 22957 |
Description
Input
Output
Sample Input
1
7 3
Sample Output
8 解题思路:就是n个球放m个盒子的问题,采用递归的思想,定义函数func(n,m)为n个苹果放入m个盘子,可以分为两种情况:
第一种,当m>n, 则总会有m-n个盒子空着,去掉他们对总的放法不产生影响,即 if(m > n) f(n, m) = f(n, n)
第二种,当n<=m时,可以分为两种:
1.至少有一个盒子空着,则 f(n, m) = f(n, m-1);
2.所有盒子都有球,我们可以从每个盒子中拿掉一个球而不影响总的放法,则 f(n, m) = f(n-m, m);
所以当n<=m时,f(n, m)=f(n, m-1) + f(n-m, m) 还有很多种不一样的n个球放入m个盒子的问题,这篇博客写的很详细:https://blog.csdn.net/zwz_511/article/details/46240927
递归出口的话看大佬解释的感觉很有道理,
递归出口条件说明:
当m=1时,所有苹果都必须放在一个盘子里,所以返回1;
当没有苹果可放时,定义为1种放法;
递归的两条路,第一条m会逐渐减少,终会到达出口m==1;
第二条n会逐渐减少,因为m>n时,我们会return func(n,n) 所以终会到达出口n==0 附上代码:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int ans,n,m; int func(int n,int m)
{
if(m==||n==) return ;
if(m>n) return func(n,n);
return func(n,m-)+func(n-m,m);
} int main()
{
int t;
cin>>t;
while(t--)
{
cin>>n>>m;
ans=func(n,m);
cout<<ans<<endl;
}
return ;
}
poj1664放苹果(递归)的更多相关文章
- poj1664 放苹果(DPorDFS)&&系列突破(整数划分)
poj1664放苹果 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 33661 Accepted: 20824 Desc ...
- [POJ1664]放苹果(动态规划)
[POJ1664]放苹果 Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. Input 第 ...
- POJ1664 放苹果 (母函数)
放苹果 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 37515 Accepted: 23090 Description ...
- poj 1664 放苹果 递归
题目链接: http://poj.org/problem?id=1664 题目描述: 有n个苹果,m个盒子,盒子和苹果都没有顺序,盒子可以为空,问:有多少种放置方式? 解题思路: 当前有n个苹果,m个 ...
- poj1664 放苹果(递归)
转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents 题目链接:http://poj.org/problem?id=1664 ------ ...
- [POJ1664] 放苹果 (动态规划,组合数学)
题目描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分发(5,1,1和1,1,5是同一种方法) 输入输出格式 输入格式: 第一行是测试数据的数目t(0 <= ...
- POJ1664 放苹果
#include <iostream> #include <cstdio> #include <cstring> using namespace std; int ...
- 放苹果(poj1664递归)
ti放苹果 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 24392 Accepted: 15513 Descripti ...
- 递归--练习4--noi666放苹果
递归--练习4--noi666放苹果 一.心得 写出状态后勇敢假设 二.题目 666:放苹果 总时间限制: 1000ms 内存限制: 65536kB 描述 把M个同样的苹果放在N个同样的盘子里,允 ...
随机推荐
- [转帖]K8H3D 病毒 腾讯御剑的解析
https://weibo.com/ttarticle/p/show?id=2309404344350225132710 永恒之蓝下载器木马又双叒叕升级了新的攻击方式 背景 腾讯安全御见威胁情报中 ...
- ToroiseGit提交代码上传到阿里云的Gitlab
https://blog.csdn.net/xiaomogg/article/details/51903004(copy) 准备 具体过程 准备 1.拥有一个GitHub账户 2.安装了Tortois ...
- win10远程桌面连接提示身份验证错误,要求的函数不受支持的解决方案
转自https://www.baidu.com/link?url=67JXh4h79mN47mEenuH_ElGkSh9_GdOiY-Xp9Ihw0_mQIZHrPx-HxY3EIm_nTZKPoRZ ...
- Guava Cache源码详解
目录 一.引子 二.使用方法 2.1 CacheBuilder有3种失效重载模式 2.2 测试验证 三.源码剖析 3.1 简介 3.2 源码剖析 四.总结 优点: 缺点: 正文 回到顶部 一.引子 缓 ...
- Spring Boot基础:Spring Boot简介与快速搭建(1)
1. Spring Boot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的创建.运行.调试.部署等. Spring Boot默认使用tomca ...
- Tomcat配置Https环境
windows环境下:http://blog.csdn.net/supersky07/article/details/7407523 linux环境下:http://blog.csdn.net/cuk ...
- How to install macOS Sierra on Skylake
create usb installer sudo /Applications/Install\ macOS\ Sierra.app/contents/resources/createinstallm ...
- Running ASP.NET Core applications on Windows Subsystem for Linux
Setting up Linux on Windows 10 First thing is to enable Windows Subsystem for Linux. It doesn’t inst ...
- vuex2.0 基本使用(2) --- mutation 和 action
我们的项目非常简单,当点击+1按钮的时候,count 加1,点击-1按钮的时候,count 减1. 1, mutation The only way to actually change state ...
- Nginx 如何通过连接池处理网络请求
L:35-36 worker_connections 默认 512个 这个链接需要设置的 worker_cpu_affinity 0001 0010 0100 1000;关联CPU connecti ...