poj 1664[dfs]

来源:互联网 发布:钓鱼源码 编辑:程序博客网 时间:2024/06/08 14:10

放苹果

题意:M个苹果放到N个相同的盘子里,可有空盘,求有多少放法

三种情况:

1.0苹果或1盘子,则只有一种

2.N<M,则放置方法和N=M相同

3.N>M,先把N苹果分别放置到每一个M中,则放法为(N-M,M);当至少有一个空盘时,(N,M-1)

代码:

#include<stdio.h>#include<algorithm>int dfs(int n,int m){if (n==0||m==1)return 1;if (n<m)//刚开始这里写的n<=m,无法运行return dfs(n,n);elsereturndfs(n-m,m)+dfs(n,m-1); }   int main() { int t,x,y; scanf("%d",&t); while (t--) { scanf("%d%d",&x,&y); printf ("%d\n",dfs(x,y)); }return 0; }



0 0
原创粉丝点击