题目描述 Description

设有一个n*m的棋盘(2≤n≤50,2≤m≤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

这是一个棋盘型DP题目,对于这种题目,我们只要找到其动态转移方程即可。另外需要注意的是对于这种问题,dfs会严重超时,不能使用,对数组定义类型的时候优先定义long类型,保证数据的范围。
动态转移方程:
(j + 1 <= m && i - 2 >= 1)   dp[i][j] += dp[i - 2][j + 1];
(j + 2 <= m)   dp[i][j] += dp[i - 1][j + 2];
(j - 1 >= 1 && i - 2 >= 1)  dp[i][j] += dp[i - 2][j - 1];
(j - 2 >= 1)  dp[i][j] += dp[i - 1][j - 2];
代码如下:
/*************************************************************************> File Name: 骑士游历.cpp> Author: zhanghaoran> Mail: chilumanxi@gmail.com > Created Time: 2015年07月02日 星期四 13时57分30秒************************************************************************/#include <iostream>
#include <algorithm>
#include <cstring>using namespace std;
int n, m;
int x1, x2, y1, y2;
long dp[51][51];int main(void){cin >> n >> m;cin >> x1 >> y1 >> x2 >> y2;memset(dp, 0, sizeof(dp));dp[x1][y1] = 1;for(int i = x1 + 1; i <= x2; i ++){for(int j = 1; j <= m; j ++){if(j + 1 <= m && i - 2 >= 1)dp[i][j] += dp[i - 2][j + 1];if(j + 2 <= m)dp[i][j] += dp[i - 1][j + 2];if(j - 1 >= 1 && i - 2 >= 1)dp[i][j] += dp[i - 2][j - 1];if(j - 2 >= 1)dp[i][j] += dp[i - 1][j - 2];}}cout << dp[x2][y2] << endl;return 0;
}

转载于:https://www.cnblogs.com/chilumanxi/p/5136122.html

CODE[VS] 1219 骑士游历相关推荐

  1. Codevs 1219 骑士游历

    1219 骑士游历 1997年 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 设有一个n*m的棋盘(2≤n≤50,2≤m≤50), ...

  2. codevs 1219 骑士游历 1997年

    时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题目描述 Description 设有一个n*m的棋盘(2≤n≤50,2≤m≤50),如下图,在棋盘上有一个中国象 ...

  3. wikioi 1219 骑士游历

    题目描述 Description 设有一个n*m的棋盘(2≤n≤50,2≤m≤50),如下图,在棋盘上有一个中国象棋马. 规定: 1)马只能走日字 2)马只能向右跳 问给定起点x1,y1和终点x2,y ...

  4. 1219 骑士游历(棋盘DP)

     1997年  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解 题目描述 Description 设有一个n*m的棋盘(2≤n≤50,2≤m≤50),如下图 ...

  5. SSL1277骑士游历 题解

    SSL1277骑士游历 题解 问题描述: 问题描述:如下图所示有 m ∗ n m*n m∗n一个棋盘,在棋盘左下角的A(1,1)点,有一个中国象棋〈马〉,并约定马走的规则: ①走日字:②只能向右走. ...

  6. java编写类骑士游历_java课程设计骑士游历程序的开发

    java课程设计骑士游历程序的开发 JAVA程序设计 课程设计报告 课 题: 骑士游历程序的开发 姓 名: 学 号: 同组姓名: 专业班级: 指导教师: 设计时间: 2013.06.10 评阅意见: ...

  7. DFS(二):骑士游历问题

    在国际象棋的棋盘(8行×8列)上放置一个马,按照"马走日字"的规则,马要遍历棋盘,即到达棋盘上的每一格,并且每格只到达一次.例如,下图给出了骑士从坐标(1,5)出发,游历棋盘的一种 ...

  8. c语言骑士游历优化算法,骑士游历、骑士巡游(C语言)课程设计.doc

    存档资料 成绩: 华东交通大学理工学院 课 程 设 计 报 告 书 所属课程名称 数据结构 题 目 骑士游历 分 院 专业班级 学 号 学生姓名 黄锦辉 指导教师 2012 年 6月 15 日 目 录 ...

  9. 【深搜】骑士游历(二)

    骑士游历(二) 问题描述:设有一个n×n的棋盘(n≤10),在棋盘上的任意一点A(x,y)有一中国象棋<马>,<马>走的规则同前,但取消<马>只能向右走的条件.试找 ...

最新文章

  1. CoreCLR系列随笔 之ClrJit项目之alloc.cpp文件分析(1)
  2. 用python实现todolist_So easy !用 Python 开发一个todolist
  3. PowerDesigner脚本使用记录
  4. 河南派出所犯罪嫌疑计算机网络人,【出彩河南公安人】息县公安局冯振娇:平凡岗位献青春 恒心不改展风采...
  5. docker运行随机分配端口
  6. [转载] java:比较运算符
  7. HTML常用标签及属性
  8. WEB前端开发快速入门教程
  9. C语言 十六进制转二进制(只能正数)
  10. springboot教务评教系统毕业设计源码252116
  11. 信息学奥赛一本通|1196:踩方格
  12. jsonViewer json格式化工具
  13. linux gianfar 网口驱动源码,基于MPC8313ERDB平台的Marvell88E1111型网卡驱动移植(uboot+kernel)...
  14. python 列表拆分_python列表拆分
  15. [Angular] ng-alain的一些实践
  16. 学生个人网页设计作品 学生个人网页模板简单个人主页成品 个人网页制作 HTML学生个人网站作业设计
  17. python数据可视化库 动态的_Python数据可视化:Pandas库,要是一行代码就能完成...
  18. stlink下载调试器使用说明(STM32采用stlink下载程序)
  19. configure: error: C++ preprocessor /lib/cpp fails sanity check
  20. 苹果手机怎样用计算机打开快手,快手手机电脑怎么连接

热门文章

  1. 菲涅尔区,前后比,VSWR
  2. gearhost php,美国免费稳定全能空间:GearHost
  3. 前嗅教你大数据:采集东方财富网数据
  4. ubuntu 18,问题总结
  5. PDF在线阅览FlexPaper正版授权无品牌
  6. Graphviz 双向边和无向边
  7. oracle数据库字符集AL32UTF8修改为ZHS16GBK即从超集到子集
  8. NGR-PEG-6-FAM 肿瘤新生血管靶向肽NGR-聚乙二醇-6-羧甲基荧光素
  9. Codeforces - Pencils and Boxes
  10. 【计算机科学】【2016.12】运动摄影测量中三维点云结构的比较与表征