您的位置:首页 > 其它

poj 1664放苹果

2014-07-29 20:53 183 查看
Description把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。递归出口:m=0没有苹果,方法一种m=1,一个苹果任意放n=1,只有一个盘子,方法一种f(m,n)考虑两种情况:全部放满,与f(m-n,n)方法数一样至少一个盘子为空 ,去掉这个盘子放法一样f(m,n-1)f(m,n)=f(m-n,n)+f(m,n-1)
#include <iostream>using namespace std;int PutApple(int m,int n){if(m==1 || n==1|| m==0)return 1;elsereturn PutApple(m-n,n)+PutApple(m,n-1);}int main(int arg,char* argv[]){int N,m,n;cin>>N;while(N--){cin>>m>>n;int ret=PutApple(m,n);cout<<ret<<endl;}return 0;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: