zoukankan      html  css  js  c++  java
  • 97. 骑士游历(动规)(未结题)

    1219 骑士游历

     

    1997年

     时间限制: 1 s
     空间限制: 128000 KB
     题目等级 : 黄金 Gold
    题目描述 Description

    设有一个n*m的棋盘(2≤n≤50,2m≤50),如下图,在棋盘上有一个中国象棋马。

    规定:

    1)马只能走日字

    2)马只能向右跳

    问给定起点x1,y1和终点x2,y2,求出马从x1,y1出发到x2,y2的合法路径条数。

    97. <wbr>骑士游历(动规)(未结题)
    输入描述 Input Description

    第一行2个整数n和m

    第二行4个整数x1,y1,x2,y2

    输出描述 Output Description

    输出方案数

    样例输入 Sample Input

    30 30

    1 15 3 15

    样例输出 Sample Output

    2

    数据范围及提示 Data Size & Hint

    2<=n,m<=50

    分类标签 Tags 点此展开 

    codevs错误代码:
    #include
    using namespace std;
    #include
    #include
    int n,m,x1,y1,x2,y2;
    int step[60][60];
    int main()
    {
    cin>>n>>m;
    cin>>x1>>y1>>x2>>y2;
    step[x1][y1]=1;
    for(int i=x1;i<=x2;++i)
     for(int j=1;j<=m;++j)
    {
    if(i>=3&&j>=2)
    step[i][j]+=step[i-2][j-1];
    if(i>=2&&j>=3)
    step[i][j]+=step[i-1][j-2];
    if(i<=n-1&&j<=m-2)
    step[i][j]+=step[i-1][j+2];
    if(i<=n-2&&j<=m-1)
    step[i][j]+=step[i-2][j+1];
    }
    cout<<step[x2][y2];
    return 0;
    }
    能过代码:
    #include
    using namespace std;
    #include
    #include
    int n,m,x1,y1,x2,y2;
    long long int step[60][60];
    int main()
    {
    cin>>n>>m;
    cin>>x1>>y1>>x2>>y2;
    step[x1][y1]=1;
    for(int i=x1;i<=x2;++i)
     for(int j=1;j<=m;++j)
     if(step[i][j])
    {
    if(j-2>=1)step[i+1][j-2]+=step[i][j];//把当前这个点下一步走到的点都加上当前这个点的方案*/ 

             if(j-1>=1)step[i+2][j-1]+=step[i][j];

             if(j+1<=n)step[i+2][j+1]+=step[i][j];

             if(j+2<=n)step[i+1][j+2]+=step[i][j];
    }
    cout<<step[x2][y2];
    return 0;
    }
  • 相关阅读:
    idea git 操作
    1
    python 迭代器/生成器/迭代对象
    python 中的type
    systemd 配置文件
    python 中类的初始化过程
    mysql主从错误180301
    从零开始搭建k8s-20180301
    kubernetes role
    Java程序员毕业两年自述
  • 原文地址:https://www.cnblogs.com/c1299401227/p/5370714.html
Copyright © 2011-2022 走看看