计蒜客习题:马踏过河卒 题目 样例 代码 #include<iostream> using namespace std; long long mp[25][25],step[10][3]={{0,0},{-2,-1},{-1,-2},{1,-2},{2,-1},{2,1},{1,2},{-1,2},{-2,1}}; int main() { int n,m,x,y; cin>>n>>m>>x>>y; for(int i=0;i<9;i++) { if(x+step[i][0]>=0&&x+step[i][0]<=n&&y+step[i][1]>=0&&y+step[i][1]<=m) mp[x+step[i][0]][y+step[i][1]]=-1; } mp[0][0]=1; for(int i=0;i<=n;i++) for(int j=0;j<=m;j++) { if(mp[i][j]==-1) mp[i][j]=0; else { if(i>0) mp[i][j]+=mp[i-1][j]; if(j>0) mp[i][j]+=mp[i][j-1]; } } cout<<mp[n][m]; return 0; }