程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> HDU 1267——下沙的沙子有幾粒?

HDU 1267——下沙的沙子有幾粒?

編輯:C++入門知識

相當水的DP,狀態方程也很簡單:dp(m,n)=dp(m,n-1)+dp(m-1,n),其中m<n的話排列的情況不存在。 dp的精髓就是狀態方程。 [cpp]  #include <iostream>   #include <cstring>   using namespace std;      __int64 dp[21][21];      int main()   {       int m,n;       while(cin>>m>>n)       {           memset(dp,0,sizeof(dp));           if(m<n)           {               cout<<0<<endl;               continue;           }           else           {                  for(int a=1;a<=m;a++)               {                   dp[a][0]=1;               }               for(int i=1;i<=20;i++)               {                   for(int j=1;j<=i;j++)                   {                       dp[i][j]=dp[i][j-1]+dp[i-1][j];                   }               }                          cout<<dp[m][n]<<endl;           }                  }                            return 0;   }     

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved