1219 骑士游历(棋盘DP)
设有一个n*m的棋盘(2≤n≤50,2≤m≤50),如下图,在棋盘上有一个中国象棋马。
规定:
1)马只能走日字
2)马只能向右跳
问给定起点x1,y1和终点x2,y2,求出马从x1,y1出发到x2,y2的合法路径条数。
第一行2个整数n和m
第二行4个整数x1,y1,x2,y2
输出方案数
30 30
1 15 3 15
2
2<=n,m<=50
分类标签 Tags 点此展开
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> using namespace std; long long f[101][101]; int n,m,x1,x2,y1,y2; int main() {scanf("%d%d",&n,&m);scanf("%d%d%d%d",&x1,&y1,&x2,&y2);f[x1][y1]=1;//显然,当前所在点的途径只有1 for(int i=x1;i<=n;i++)//从当前所在点开始 for(int j=1;j<=m;j++){if(i-2>0&&j-1>0) f[i][j]+=f[i-2][j-1];if(i-2>0&&j+1<=m) f[i][j]+=f[i-2][j+1];if(i-1>0&&j-2>0) f[i][j]+=f[i-1][j-2];if(i-1>0&&j+2<=m) f[i][j]+=f[i-1][j+2];}cout<<f[x2][y2];return 0; }
注意:在赋初值的时候一定要注意赋哪个!!
思路:还记得过河卒吗?
这个题和那个题的思路是一样的!
由于马只能走日而且只能从左边来,所以要判断4种情况,他从(-2,1)(-2,-1)(-1,2)(-1,-2)这4个地方来,
但还要判断他是否出界!!!
所以该点的方案数就是这4个点的方案数的和!
转载于:https://www.cnblogs.com/z360/p/6746861.html
1219 骑士游历(棋盘DP)相关推荐
- Codevs 1219 骑士游历
1219 骑士游历 1997年 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 设有一个n*m的棋盘(2≤n≤50,2≤m≤50), ...
- CODE[VS] 1219 骑士游历
题目描述 Description 设有一个n*m的棋盘(2≤n≤50,2≤m≤50),如下图,在棋盘上有一个中国象棋马. 规定: 1)马只能走日字 2)马只能向右跳 问给定起点x1,y1和终点x2,y ...
- codevs 1219 骑士游历 1997年
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 设有一个n*m的棋盘(2≤n≤50,2≤m≤50),如下图,在棋盘上有一个中国象 ...
- wikioi 1219 骑士游历
题目描述 Description 设有一个n*m的棋盘(2≤n≤50,2≤m≤50),如下图,在棋盘上有一个中国象棋马. 规定: 1)马只能走日字 2)马只能向右跳 问给定起点x1,y1和终点x2,y ...
- codevs1219 骑士遍历(棋盘DP)
题目描述 Description 设有一个n*m的棋盘(2≤n≤50,2≤m≤50),如下图,在棋盘上有一个中国象棋马. 规定: 1)马只能走日字 2)马只能向右跳 问给定起点x1,y1和终点x2,y ...
- 骑士游历问题(C语言代码)
关于骑士游历问题,大家可以想到的方法是回溯法和贪心算法.回溯法的时间复杂度比较高,贪心算法的时间复杂度就好多了. 骑士游历问题 问题描述: 棋盘大小是8*8,骑士在棋盘任一方格开始游历.要求骑士游历棋 ...
- c语言骑士游历优化算法,骑士游历问题(C语言代码)
关于骑士游历问题,大家可以想到的方法是回溯法和贪心算法.回溯法的时间复杂度比较高,贪心算法的时间复杂度就好多了. 骑士游历问题 问题描述: 棋盘大小是8*8,骑士在棋盘任一方格开始游历.要求骑士游历棋 ...
- 骑士游历问题(马踏棋盘)解析(c++)
骑士游历问题:在国际棋盘上使一个骑士遍历所有的格子一遍且仅一遍,对于任意给定的顶点,输出一条符合上述要求的路径 解题思路: 这是一道经典的遍历问题(DFS),由于题目要求遍历全部,那么肯定要做标记,因 ...
- java编写类骑士游历_java课程设计骑士游历程序的开发
java课程设计骑士游历程序的开发 JAVA程序设计 课程设计报告 课 题: 骑士游历程序的开发 姓 名: 学 号: 同组姓名: 专业班级: 指导教师: 设计时间: 2013.06.10 评阅意见: ...
最新文章
- 2018-4-8模拟退火算法
- es6学习笔记2-—symbol、变量与作用域
- Java学习之生成随机数
- NoSQL和SQL怎么选用?
- 【高性能定时器】 时间轮
- 10分钟上线 - 利用函数计算构建微信小程序的Server端
- Linux系统常用指令总结
- 三星手机 java_如何在三星手机上安装Java ME应用程序?
- 调整谷歌reCAPTCHA大小 How to resize the Google noCAPTCHA reCAPTCHA
- URL中包含url参数,(文件路径作为参数)
- 客户端用java api 远程操作HDFS以及远程提交MR任务(源码和异常处理)
- 如何定时唤醒计算机命令,如何设置定时开机 定时开机命令设置方法
- python时间序列预测不连续怎么办_手把手教你用Python处理非平稳时间序列
- 2. HTTP 报文
- 0.96寸OLED 屏幕SSD1306驱动四脚原理图PDF
- 总结:硬盘随机读写与顺序读写的性能差异
- (一)来自 192.168.xx.xx的回复: TTL 传输中过期。
- 鸿蒙时期电视剧,《我的时代,你的时代》|电视剧简介
- 微信小程序常见问题记录
- Python学习日志--摆动吧!钟摆!
热门文章
- matlab 水平投影,matlab图像处理方面的问题。水平投影和垂直投影!
- android 虹软 例子,虹软免费人脸识别 Demo [Android]
- 微波射频学习笔记7--------阻抗匹配
- android 跳转第三方应用qq或联系我们功能使用qq
- CSS3画八卦太极图(绕一个圆旋转)
- js实现图片瀑布流布局
- Three.js 后期处理-泛光效果-BloomPass-相机分层渲染
- 2014-01-14
- discuz服务器500错误信息,discuz论坛程序突然出现http500错误解决方案
- 阿里云Apsara Clouder专项技能认证-实现调用API接口-学习笔记