poj1664

#include<iostream>
using namespace std;

int f(int x,int m,int n){
	if(m==0)
		return 1;
	if(n==0)
		return 0;
	if(x==0&&m>0)
		return 0;	
	int i=x;
	if(i>m)
		i=m;
	int sum=0;
	for(;i>=0;i--){
		sum+=f(i,m-i,n-1);
	}
	return sum;

}
int main(){ 
	int a,m,n;
	cin>>a;
	while(a--){
		cin>>m>>n;
		cout<<f(m,m,n)<<endl;
	}
	return 0;
}
x代表上一个盘子放苹果个数,下一个盘子个数不能大于这个数

你可能感兴趣的:(poj1664)