• codevs1219 骑士遍历(棋盘DP)


    题目描述 Description

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

    规定:

    1)马只能走日字

    2)马只能向右跳

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

    输入描述 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


    水题,直接推就行了。。。


    #include<iostream>
    #include<cassert>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<cmath>
    #include<string>
    #include<iterator>
    #include<cstdlib>
    #include<vector>
    #include<stack>
    #include<map>
    #include<set>
    using namespace std;
    #define rep(i,f,t) for(int i = (f),_end_=(t); i <= _end_; ++i)
    #define rep2(i,f,t) for(int i = (f),_end_=(t); i < _end_; ++i)
    #define dep(i,f,t) for(int i = (f),_end_=(t); i >= _end_; --i)
    #define dep2(i,f,t) for(int i = (f),_end_=(t); i > _end_; --i)
    #define clr(c, x) memset(c, x, sizeof(c) )
    typedef long long int64;
    const int INF = 0x5f5f5f5f;
    const double eps = 1e-8;
    
    
    //*****************************************************
    
    int64 d[55][55];
    
    int main()
    {
        int n,m,x1,x2,y1,y2;
        scanf("%d%d%d%d%d%d",&n,&m,&x1,&y1,&x2,&y2);
        if(x2 <= x1){
            cout<<0<<endl;
            return 0;
        }
        clr(d,0);
        d[x1][y1] = 1;
        for(int i = x1; i < x2; ++i)
        {
            for(int j = 1; j <= m; ++j)
            {
                if(d[i][j])
                {
                    d[i+1][j+2] += d[i][j];
                    d[i+2][j+1] += d[i][j];
                    if(j-2 > 0) d[i+1][j-2] += d[i][j];
                    if(j-1 > 0) d[i+2][j-1] += d[i][j];
                }
            }
        }
        cout<<d[x2][y2]<<endl;
        return 0;
    }
    





    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    php通过ip获取地理位置的方法
    python程序怎么运行起来的
    php cURL学习 一个post提交反馈的小例子
    如何运行Python程序
    python初学者的建议
    php5.4新特性实践
    php中json_encode与json_decode注意事项
    Apanta安装Emmet(Zencoding)
    office 2013 电话激活步骤
    js中encodeURI()与encodeURIComponent()区别
  • 原文地址:https://www.cnblogs.com/DSChan/p/4862020.html
Copyright © 2020-2023  润新知