HDU1267 dp

简单dp

dp[ i ][ j ]=dp[ i-1 ][ j ](放一个H得到dp[ i ][  j ])+dp[ i ][ j-1 ]( 放一个D得到dp[ i ][ j ]);

注意初始化 为dp[ i ][ 0 ]=1;!!!!!!!

View Code
 1 #include<stdio.h>
 2 #include<string.h>
 3 const int maxn = 24;
 4 typedef __int64 int64;
 5 int64 dp[ maxn ][ maxn ];
 6 
 7 void init(){
 8     for( int i=0;i<=20;i++ )
 9         dp[i][0]=1;
10     dp[ 1 ][ 1 ]=1;
11     for( int i=2;i<=20;i++ ){
12         for( int j=1;j<=i;j++ ){
13             if( i==j ){
14                 dp[i][j]=dp[i][j-1];
15             }
16             else{
17                 dp[i][j]=dp[i-1][j]+dp[i][j-1];
18             }
19         }
20     }
21 }
22 int main(){
23     init();
24     int n,m;
25     while( scanf("%d%d",&n,&m)==2 ){
26         printf("%I64d\n",dp[n][m]);
27     }
28     return 0;
29 }
keep moving...
原文地址:https://www.cnblogs.com/xxx0624/p/2943637.html