如图,AA 点有一个过河卒,需要走到目标 BB 点。卒行走规则:可以向下、或者向右。同时在棋盘上的 CC 点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。
例如上图 CC 点上的马可以控制 99 个点(图中的 P_1,P_2,
和 CC)。卒不能通过对方马的控制点。
棋盘用坐标表示,A点(0,0)、B 点(n,m)同样马的位置坐标是需要给出的。
现在要求你计算出卒从 A 点能够到达 B 点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步。。
输入描述
一行四个正整数,分别表示 BB 点坐标和马的坐标。
输出描述
一个整数,表示所有的路径条数。
样例输入
6 6 3 3
样例输出
6
注意:当不方便处理网格点 可以人为增加网格边界 注意细节的处理
dp状态方程的写法:由于只能向下或者右走,所以某一点只能从上面或者左面来.
#include<bits/stdc++.h>
using namespace std;
long long dp[40][40]={
0};//dp[i][j]表示卒走到坐标[i][j]时能走的路径条数
int s[40][40]; //标记马的控制点;
int main(){