其实不需要find()函数,可以实现标记好哪些点可以走,哪些点不能走,记到一个二维数组里.
```cpp
#include<iostream>
using namespace std;
int dx[8]={1,1,2,2,-1,-1,-2,-2};//八个方向行与原点的变化
int dy[8]={2,-2,2,-1,2,-2,1,-1};//八个方向列与原点的变化
bool f[30][30];//标记是否可走,可走为0,不可走为1
int n,m,cx,cy;
void biaoji()
{
f[cx][cy]=1;//原点不可走
for(int i=0;i<8;i++)//枚举八个方向
{
int tx=cx+x[i][0];//新点的行
int ty=cy+x[i][1];//新点的列
if(tx>=0&&tx<=n&&ty>=0&&ty<=m)//若行列都没有超出范围
f[tx][ty]=1;//标记不可走
}
}
int main()
{
cin>>n>>m>>cx>>cy;
biaoji();
//后面就直接把f[i][j]的值拿来用即可
return 0;
}
```
by wanggk @ 2021-07-09 11:26:22