HDU 1723 Distribute Message(DP)

来源:互联网 发布:应聘淘宝客服的简历 编辑:程序博客网 时间:2024/05/21 07:01

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1723


题目大意:一共有N个学生,第i个人可以把信息传给后面的M个人,问最后一个人i-N,有多少种接收信息的方法


解题思路: dp[i]  += dp[i-j] (j∈[1,m])   

#include<cstdio>#include<cstring>int dp[35];int main (){    int n, m;    while(scanf("%d %d", &n, &m) , n||m)    {                if(n == 1) {puts("1"); continue;}        if(m == 0) {puts("0"); continue;}                memset(dp, 0, sizeof(dp));        dp[1] = 1;        for(int i = 2; i <= n; i++)        {            for(int j = 1; j <= m; j++)            {                if(i - j == 0) break;                dp[i] += dp[i-j];            }        }        printf("%d\n", dp[n]);    }    return 0;}


0 0