整理一下以前做过的 生成函数的题
JOJ 1026 The Staircases
构造函数(1+x)(1+x^2)(1+x^3)(1+x^4)……
答案为d[n]-1 减去的是step为1的情况
#include <cstdio>
#include <memory.h>
const int maxn = 505;
int main ()
{
long long d[maxn],i,j;
memset (d,0,sizeof(d));
d[0]=1;d[1]=1;
for(i=2 ; i<maxn ; i++)//控制打开的括号数
for(j=500 ; j>=0 ; j--)
{
if(j+i<maxn&&d[j]>0)d[j+i]+=d[j];
}
int n;
while (scanf("%d",&n)!=EOF && n)
printf("%lld\n",d[n]-1);
return 0;
}