poj 1664 放苹果

#include<iostream>        //构造非下降序列(这样才能不重复),统计其个数
using namespace std;
int t,m,n,ans[15],sum,s;
void dfs(int r)
{
if(r==n)
{
if(m-sum>=ans[r-1])
s
++;
return ;
}
for(int i=ans[r-1];sum+i<=m;++i)
{
ans[r]
=i;
sum
+=ans[r];
dfs(r
+1);
sum
-=ans[r];
}
}
int main()
{
int t;
cin
>>t;
while(cin>>m>>n)
{
s
=sum=0;
dfs(
1);
cout
<<s<<endl;
}
return 0;
}

  

posted on 2011-07-22 20:25  sysu_mjc  阅读(91)  评论(0编辑  收藏  举报

导航