zoukankan      html  css  js  c++  java
  • HDU

    先上题目:

    Distribute Message

    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 1186    Accepted Submission(s): 547


    Problem Description
    The contest’s message distribution is a big thing in prepare. Assuming N students stand in a row, from the row-head start transmit message, each person can transmit message to behind M personals, and how many ways could row-tail get the message?
     
    Input
    Input may contain multiple test cases. Each case contains N and M in one line. (0<=M<N<=30)
    When N=0 and M=0, terminates the input and this test case is not to be processed. 
     
    Output
    Output the ways of the Nth student get message.
     
    Sample Input
    4 1
    4 2
    0 0
     
    Sample Output
    1
    3
    Hint
    4 1 : A->B->C->D
    4 2 : A->B->C->D, A->C->D, A->B->D
     
      
     
     
    上代码:
     
     1 #include <cstdio>
     2 #include <cstring>
     3 #define MAX 32
     4 #define LL long long
     5 using namespace std;
     6 
     7 LL dp[MAX];
     8 
     9 int main()
    10 {
    11     int n,m;
    12     while(scanf("%d %d",&n,&m),(n+m)){
    13         memset(dp,0,sizeof(dp));
    14         dp[1]=1;
    15         for(int i=1;i<=n;i++){
    16             for(int j=1;j<=m && i+j<=n;j++){
    17                 dp[i+j]+=dp[i];
    18             }
    19         }
    20         printf("%I64d
    ",dp[n]);
    21     }
    22     return 0;
    23 }
    1723
  • 相关阅读:
    socket
    netstat
    列表
    突然发现不会写代码了
    算法资源
    bit位操作
    排序算法
    连续子数组最大和
    books
    凸优化
  • 原文地址:https://www.cnblogs.com/sineatos/p/3574500.html
Copyright © 2011-2022 走看看