洛谷——P2386 放苹果

https://www.luogu.org/problem/show?pid=2386

题目背景

(poj1664)

题目描述

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

输入输出格式

输入格式:

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

输出格式:

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

输入输出样例

输入样例#1:
1
7 3
输出样例#1:
8
输入样例#2:
1
7 3
输出样例#2:
8


如果没有苹果或者只剩一个盘子,只有一种方案。
如果苹果比盘子少,多余的盘子就不管了、
否则,可以不放苹果,或者每个盘子放一个
 1 #include <cstdio>
 2 
 3 inline void read(int &x)
 4 {
 5     x=0; register char ch=getchar();
 6     for(; ch>'9'||ch<'0'; ) ch=getchar();
 7     for(; ch>='0'&&ch<='9'; ch=getchar()) x=x*10+ch-'0';
 8 }
 9 
10 int DFS(int apple,int dish)
11 {
12     if(!apple||dish==1) return 1;
13     else if(apple<dish) return DFS(apple,apple);
14     else return DFS(apple-dish,dish)+DFS(apple,dish-1);
15 }
16 
17 int Presist()
18 {
19     int t; read(t);
20     for(int n,m; t--; )
21     {
22         read(m),read(n);
23         printf("%d
",DFS(m,n));
24     }
25     return 0;
26 }
27 
28 int Aptal=Presist();
29 int main(){;}
——每当你想要放弃的时候,就想想是为了什么才一路坚持到现在。
原文地址:https://www.cnblogs.com/Shy-key/p/7517534.html