【NOIP1997】骑士游历
来源:互联网 发布:常用排序算法 编辑:程序博客网 时间:2024/05/16 06:32
【codevs 1219】
1219 骑士游历 1997年
时间限制: 1 s
空间限制: 128000 KB
题目等级 : 黄金 Gold
题解
题目描述 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 分类是这么说的
然而更像递推……
类似于过河卒
只能向右走也就是只能由左边转移而来
那就从起点开始转移
╮(╯_╰)╭讲完了
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int MAXN = 105;int n,m,x1,y1,x2,y2;long long num[MAXN][MAXN];long long ans = 0;int main(){ memset(num,0,sizeof(num)); scanf("%d %d",&n,&m); scanf("%d %d %d %d",&x1,&y1,&x2,&y2);//起点终点 num[y1][x1] = 1; for(int i = x1; i <= x2; i ++) { for(int j = 1; j <= m; j ++) { if(!num[j][i]) continue; //之前的状态无法到达那么当前状态也无法到达 //四个状态转移 num[j + 1][i + 2] += num[j][i]; num[j + 2][i + 1] += num[j][i]; num[j - 1][i + 2] += num[j][i]; num[j - 2][i + 1] += num[j][i]; } } ans = num[y2][x2]; printf("%lld\n",ans); return 0;}
0 0
- 【NOIP1997】骑士游历
- noip1997 骑士游历 (动态规划+搜索)
- 【动态规划】CODE[VS] 1219 骑士游历 【Noip1997】
- 骑士游历
- 骑士游历
- 骑士游历
- 骑士游历
- 骑士游历问题
- ZJNU 1006 骑士游历
- 骑士游历问题
- UVA 439 骑士游历
- poj 2488 骑士游历
- wikioi p1219 骑士游历
- wikioi 1219 骑士游历
- POJ2488 骑士游历(DFS)
- Wikioi 骑士游历
- wikioi骑士游历c
- 维基 1219 骑士游历
- Android MVP 模式应用实例
- 【tyvj】1030 乳草的入侵 bfs
- LUCENE中的文件操作都是通过这Directory来实现的
- 生成树字符串
- C++Primer(第十一章课后习题程序题源代码)
- 【NOIP1997】骑士游历
- HTTP协议详解
- https原理和tcp握手机制
- 左连接、右连接、内连接、外连接、交叉连接
- qt写的在ok6410上的密码锁
- gdi+(1) 画直线
- NoSQL vs SQL
- gdi+(2) 画矩形
- CVPR 2016-9-27