先说一下我的思路:
看一个简易版的图:
1 1 1 1
1 2 3 4
1 3 6 10
1 4 10 20
20即从起点到终点的全部走法
绘图规则:
- 最上面一行和最左边一列全标上1;
- 之后每个数都是其上面的数和左面的数之和;
- 在本题中,被马控制的点标零;
可以用二维数组和循环模拟这个过程
我就是这样做的,为啥零分?
#include<iostream>
using namespace std;
int x[26][26];
int main(){
int n,m,mn,mm;
long long shuchu;
cin>>n>>m>>mn>>mm;
mn+=2;
mm+=2;
n+=2;
m+=2;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++)
x[i][j]=1;
}
x[mn][mm]=0;
x[mn+1][mm+2]=0;
x[mn+1][mm-2]=0;
x[mn+2][mm-1]=0;
x[mn+2][mm+1]=0;
x[mn-1][mm+2]=0;
x[mn-1][mm-2]=0;
x[mn-2][mm-1]=0;
x[mn-2][mm+1]=0;
for(int i=3;i<=n;i++)
for(int j=3;j<=m;j++)
if(x[i][j]!=0)
x[i][j]==x[i-1][j]+x[i][j-1];
cout<<x[n][m];
}