/**
* poj1664 DFS
*/
#include <cstdio>
int count;
char path[11];
void dfs(int left,int num,int len){
if(num == len){
if(left == 0){
++count;
}
return;
}
int tmpleft;
for(int i = (num == 0)? 0 : path[num-1];i<=(left/(len-num));++i){
path[num] = i;
tmpleft = left - i;
dfs(tmpleft,num+1,len);
}
}
int main(){
int t,m,n;
scanf("%d",&t);
while(t--){
scanf("%d%d",&m,&n);
count = 0;
for(int i=0;i<n;++i){
path[i] = 0;
}
dfs(m,0,n);
printf("%d\n",count);
}
return 0;
}
poj1664 DFS
最新推荐文章于 2018-02-02 15:43:59 发布