zoukankan      html  css  js  c++  java
  • HDU 2067 小兔的棋盘 动态规划

    解题报告:

    题目大意:在一个棋盘上,从坐标为(1,1)的点走到坐标为(n,n)的点并且不经过这两点之间的对角线,问一共有多少种走法。

    定义一个二维数组map[40][40],点map[i][j]的值为从(1,1)点走到这个点有多少种走法,而点(i,j) 可以由坐标为(i-1,j)和坐标为(i,j-1)这两个点走过来,所以走到(i,j)点的走法就有map[i-1][j]+map[i][j-1]种。另外要注意的是数据要用__int64,而且要初始化。

     1 #include<cstdio>
     2 #include<cstring>
     3 __int64 map[40][40];
     4 int main() {
     5     int n,l=1;
     6     memset(map,0,sizeof(map));
     7     map[1][1]=1,map[2][1]=1,map[2][2]=1;
     8     for(int i=3;i<=36;++i)
     9     for(int j=1;j<=i;++j)
    10     map[i][j]=map[i-1][j]+map[i][j-1];
    11     while(scanf("%d",&n)&&n!=-1)
    12     printf("%d %d %I64d\n",l++,n,2*map[n+1][n+1]);
    13     return 0;
    14 }
    View Code
  • 相关阅读:
    python数字
    python字符串方法
    python操作符与流程控制
    网络基础和python(二)
    网络基础和python
    Ubuntu源更新
    make和makefile介绍
    JavaScript
    redis mac安装配置
    网络编程之socket(TCP,UDP)
  • 原文地址:https://www.cnblogs.com/xiaxiaosheng/p/3111155.html
Copyright © 2011-2022 走看看