zl程序教程

您现在的位置是:首页 >  系统

当前栏目

POJ 1664 放苹果

苹果 poj
2023-09-11 14:15:28 时间

放苹果

Time Limit: 1000ms
Memory Limit: 10000KB
This problem will be judged on PKU. Original ID: 1664
64-bit integer IO format: %lld      Java class name: Main
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。
 

Input

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

Output

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

Sample Input

1
7 3

Sample Output

8

Source

Author

lwx@POJ
 
解题:这道题目不是求排列,更像是那个整数分解
 
 1 #include <iostream>
 2 #include <cstdio>
 3 using namespace std;
 4 int dp(int m,int n){
 5     if(m == 0 || n == 1) return 1;
 6     if(m < n) return dp(m,m);
 7     return dp(m-n,n) + dp(m,n-1);
 8 }
 9 int main(){
10     int t,m,n;
11     scanf("%d",&t);
12     while(t--){
13         scanf("%d %d",&m,&n);
14         printf("%d\n",dp(m,n));
15     }
16     return 0;
17 }
View Code