Wikioi 骑士游历
来源:互联网 发布:梦入神机 知乎 编辑:程序博客网 时间:2024/04/29 14:41
题目描述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
解题思路:
棋盘型递归。
直接上动态方程,画个图就出来了
d[i][j]=d[i-2][j+1]+d[i-2][j-1]+d[i-1][j+2]+d[i-1][j-2];i 代表 x轴,j代表y轴。
只要你设一个全局数组,就不用考虑什么边界问题,出边界都直接为0.
初始化,设马的初始位置是hx,hy
则d【hx】【hy】 = 1
设终点坐标为ex,ey
然后注意循环是
for i from hx+1 to ex do
for j from 1 to n do
然后你就把程序写出来了。
你把程序提交上去了,
你发现你过了两组数据,还有两组你过不了
你在那里改你的代码,好久好久,但是呢,你找不出原因,
这时候我告诉你
要用 long long unsigned 才能过,你一定气得怒砸键盘。
废话不多说,上代码
#include <iostream>using namespace std;long long unsigned d[60][60];int main(){int n,m;cin>>n>>m;int hx,hy;cin>>hx>>hy;int ex,ey;cin>>ex>>ey;d[hx][hy]=1;for(int i=hx+1;i<=ex;i++){for(int j=1;j<=m;j++){d[i][j]=d[i-2][j+1]+d[i-2][j-1]+d[i-1][j+2]+d[i-1][j-2];}}cout<<d[ex][ey];}
0 0
- wikioi p1219 骑士游历
- wikioi 1219 骑士游历
- Wikioi 骑士游历
- wikioi骑士游历c
- 骑士游历
- 骑士游历
- 骑士游历
- 骑士游历
- 骑士游历问题
- ZJNU 1006 骑士游历
- 骑士游历问题
- UVA 439 骑士游历
- poj 2488 骑士游历
- POJ2488 骑士游历(DFS)
- 维基 1219 骑士游历
- codevs1219 骑士游历
- 【codevs】p1219 骑士游历
- 骑士游历算法
- 基于C#开发 Windows Embedded Compact 7 应用
- struts之Action中获取request、response对象的方法
- java 构造函数问题
- gdb提供的功能
- HashMap put(K key, V value)解析
- Wikioi 骑士游历
- VS2008部署问题
- 高通公司AllJoyn推动全球物联网发展--关于AllJoyn
- 基于C#开发 Windows Embedded Compact 7 应用 (下)
- VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题
- Tcl/Tk -- ODBC
- [C++]cpp小笔记3 --- C++数组, 数组指针
- Android开发中常用的跳转系统自带界面方法
- omapl138开发板 支持wince6系统