#include<bits/stdc++.h>
using namespace std;
int a[25][25];
int b[25][25];
int dx[] = {1,0};
int dy[] = {0,1};
int hdx[] = {1,2,2,1,-2,-1,-2,-1};
int hdy[] = {2,1,-1,-2,1,2,-1,-2};
int main()
{
int n,m,hx,hy;
cin>>n>>m>>hx>>hy;
b[hx][hy] = 1;
for(int i = 0; i < 8; i++)
{
if(hx+hdx[i] >= 0 && hy+hdy[i] >= 0)b[hx+hdx[i]][hy+hdy[i]] = 1;
}
a[0][0] = 1;
for(int i = 0; i <= n; i++)
{
for(int j = 0; j <= m;j++)
{
if(b[i][j]!=1)
{
if(i-1<0) a[i][j] += a[i][j-1];
else if(j-1<0) a[i][j]+=a[i-1][j];
else a[i][j]+=a[i-1][j]+a[i][j-1];
}
}
}
for(int i = 0; i <= n; i++)
{
for(int j = 0; j <= m; j ++)
{
cout<<a[i][j]<<' ';
}
puts("");
}
cout<<a[n][m]<<endl;
return 0;
}
已经加了出界特判 样例过了 下载了错误样例 但是devcpp编译是对的? 求调 搞不懂了 :D