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
  • 相关阅读:
    C++基础学习1-编译与链接
    html学习
    使用BP拦截POST请求包
    2019.9.17
    搭建LAMP环境
    2019.9.16
    2019.9.12
    2019.9.11
    手脱无名壳tslgame_rl
    一款自制壳的脱壳
  • 原文地址:https://www.cnblogs.com/xiaxiaosheng/p/3111155.html
Copyright © 2011-2022 走看看