hdu 1723 Distribute Message dp

dp[i]+=dp[i-j];

dp[i]表示传到第i个位置有多少种方法

View Code
#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;
}



posted @ 2011-11-12 09:18  104_gogo  阅读(129)  评论(0编辑  收藏  举报