hdu 1723 Distribute Message dp
dp[i]+=dp[i-j];
dp[i]表示传到第i个位置有多少种方法
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include <stdio.h>
#include <string.h>
int main()
{
int n,m,i,j,dp[40];
while (scanf("%d%d",&n,&m)!=EOF)
{
if(n==0&&m==0)break;
memset(dp,0,sizeof(dp));
dp[1]=1;
for (i=2;i<=n;i++)
{
for (j=0;j<=m;j++)
{
if(i>j)dp[i]+=dp[i-j];
}
}
printf("%d\n",dp[n]);
}
return 0;
}