简单的DFS搜索题
代码:
#include<cstdio>
#include<cstring>
#include<iostream>
#define MAX 11
using namespace std;
int a[MAX],n,m,ans;
void DFS(int index,int res)
{
if(index==m)
{
if(res>=a[m-1])
{
ans++;
}
return;
}
for(int i=0;i<=res;i++)
{
a[index]=i;
if(a[index]>=a[index-1])
DFS(index+1,res-i);
a[index]=0;
}
}
int main()
{
int cas;
scanf("%d",&cas);
while(cas--)
{
scanf("%d%d",&n,&m);
ans=0;
DFS(1,n);
printf("%d\n",ans);
}
return 0;
}