您的位置:首页 > 其它

poj1664 DFS

2014-03-12 00:24 155 查看
/**
* 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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: