1222:放苹果

简介: 1222:放苹果

1222:放苹果

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。

【输入】

第一行是测试数据的数目t(0 ≤ t ≤ 20)。以下每行均包含二个整数M和N,以空格分开。1≤M,N≤10。

【输出】

对输入的每组数据M和N,用一行输出相应的K。

【输入样例】

1

7 3

【输出样例】

8

【来源】

No

1. #include<bits/stdc++.h>
2. using namespace std;
3. int t,m,n,ant;
4. int a[11]={1};
5. void dfs(int s,int k)
6. {
7.  for(int i=a[k-1];i<=s;i++){
8.    if(i<=m){
9.      s-=i;
10.       a[k]=i;
11.       if(s==0&&k<=n)ant++;
12.       else dfs(s,k+1);
13.       s+=i;
14.     }
15.   }   
16. }
17. int main()
18. {
19.   scanf("%d",&t);
20.   for(int i=1;i<=t;i++){
21.     ant=0;
22.     cin>>m>>n;
23.     dfs(m,1);
24.     printf("%d\n",ant); 
25.   }
26.   return 0;
27.  }

 

相关文章
poj 1164 放苹果
这题可以用递归的方式做,想给第一个盘子里放上苹果从(0到m),然后给第二个放上,为了保证每次产生的放法是不同的,第二个里面放置的苹果不能从0开始,否则就会产生相同的放法,然后同理第三第四个盘子。。。。 还有一个问题,可能放到最后一个盘子了,还有很多苹果没有放,怎么办?
51 0
|
iOS开发
一日一技:静音的iPhone放在家里找不到了怎么办?
一日一技:静音的iPhone放在家里找不到了怎么办?
886 0
初学算法之递归---放苹果
初学算法之递归---放苹果
|
定位技术 Android开发
安卓百度地图点击回到当前位置
安卓百度地图点击回到当前位置
277 0