A70609 | 过河卒
来源编程题
时间限制1s
内存限制16MB
通过 / 提交0/0
题目描述
A 点有一个过河卒,需要走到目标 B 点。
卒行走规则:可以向下、或者向右。同时在棋盘上的任一点有一个对方的马(如下图的 C 点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点。
例如:下图 C 点可以控制 9 个点(图中的 P1,P2 \dots P8 和 C ),卒不能通过对方马的控制点。 棋盘用坐标表示,现给定 A 点位置为 (0,0), B 点位置为 (n,m) (n,m 为不超过 20 的整数),马的位置 C 为 (X,Y)(约定: C 点与 A 点不重叠,与 B 点也不重叠)。
要求你计算出卒从 A 点能够到达 B 点的路径的条数。

输入格式
B 点的坐标 (n,m) 以及对方马的坐标 (X,Y);(马的坐标一定在棋盘范围内,但要注意,可能落在边界的轴上)
输出格式
输出卒从 A 点能够到达 B 点的路径条数。(本题的路径条数可能会超过 10^9,但不会超过 10^{18},C/C++选手请注意使用long long)
输入输出样例
输入 #1
6 6 3 2
输出 #1
17
思路
「过河卒」找递推关系,用数组或滚动变量从前往后算。
步骤
1. 读入 $n$ 或初始值。
2. 写出 $f(n)$ 与更小项的关系并初始化。
3. 循环递推到目标并输出。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?