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 }

 

 

你可能感兴趣的:(HDU)